How would you measure and improve app performance for real users in production, not just on your test phone?
What the interviewer wants to hear
- Track startup time, frame drops, ANRs, crashes and network latency
- Use tools like Firebase Performance, Play vitals, MetricKit, Sentry
- Segment by device class, OS version and country/network
- Set budgets and alert on regressions per release
- Benchmarks in CI (Macrobenchmark, XCTest metrics)
Model answer
Test phones are usually fast and on good Wi-Fi, so I rely on production data. I track cold and warm startup time, slow and frozen frames, ANRs, crash-free users, app size and network request latency. Sources include Android vitals in Play Console, Apple MetricKit and Xcode Organizer, plus a tool like Firebase Performance or Sentry for custom traces such as time to load the home feed. I always look at percentiles like p90 and segment by device class, OS version and network type, because low-end Android phones on slow networks often show the real problems. Each release is compared to the previous one, with alerts on regressions. In CI I run Macrobenchmark or XCTest performance tests so regressions are caught before release, and I set clear budgets for startup and app size.
Can you answer it under time pressure?
Take a timed hard round and get scored on every answer.
More hard Mobile App Developer questions
- How would you design the mobile client for a chat app like WhatsApp?
- Your app has grown to 40 developers and one huge module. Builds are slow and teams block each other. How would you restructure it?
- A delivery app must track the rider location all day. How do you balance accuracy with battery life and OS limits?
- In a Flutter or React Native app, you need a feature that only exists in native SDKs, such as a payment terminal SDK. How would you integrate it well?
- Users keep running old versions of your app for months. How do you evolve the API and decide when to force an update?
- Your crash reports show rising out-of-memory crashes after a release. How do you find and fix the problem?
- How would you implement secure login with an OAuth or OpenID Connect provider in a mobile app?
- How would you migrate a large UIKit or Android View app to SwiftUI or Jetpack Compose without stopping feature work?
- Millions of users have data in your app local database. How do you change the schema safely?