Mobile apps · Advanced

Mobile performance: memory, battery and the feel of speed

In one line: In apps, the feel is set at launch time and in scroll smoothness — and both are broken by images and work running on the main thread.

The three sources of slowness

Work on the main thread. Decoding images, reading files, processing lists. Anything taking more than a few milliseconds there looks like a stutter.

Images. In memory, an image weighs by its pixel count, not its file size. Downscale before display and release from the cache.

Needless network. Duplicate requests on launch, frequent polling and background downloads — all paid for in battery, which is the metric the user attributes to the app even without measuring.

Launch time

Defer any initialization not required for the first screen: analytics, third-party libraries, loading settings. A long splash screen is the first impression, and it's measured in stores too.

What to measure

Time to interactive screen, share of dropped frames on scroll, crashes per thousand launches, and battery consumption. Measure on an old device — that's what a large share of users have.

Going deeper

Collect performance metrics from the field, not just the lab, broken down by model and OS version. Performance issues almost always concentrate in one group of devices, and an overall average hides them completely.