Mobile Developer Interview Questions (iOS & Android)
Mobile interviews are unforgiving about the platform realities web developers never face: process death, OS-killed backgrounds, offline-by-default networks, and releases you cannot roll back. Show you respect those constraints and you are ahead of most candidates.
Q1Walk through the Android activity lifecycle. What do you do differently knowing process death can happen any time?
What they're checking: Whether you design for the platform reality or the happy path.
A strong answer: Beyond the callbacks: save UI state in onSaveInstanceState/SavedStateHandle, keep the source of truth in persistent storage, and test with "Don't keep activities". Process death is the interview's real subject.
Q2Explain retain cycles under ARC. How do closures cause them in Swift, and how do you find one?
What they're checking: iOS memory fundamentals that still cause real leaks.
A strong answer: Strong reference cycles via closure capture of self; break with capture lists — and justify weak vs unowned. Finding: Memory Graph Debugger and Instruments Leaks, plus deinit logging in debug.
Q3Design offline-first sync for a note-taking app. Two devices edit the same note offline — reconcile.
What they're checking: The hardest common mobile problem — most answers hand-wave the conflict.
A strong answer: Local DB as source of truth, mutation queue, server sequence. For conflicts: last-write-wins loses data silently — per-field merge, or CRDTs for text, and honest discussion of the complexity cost.
Q4Cold start takes 4 seconds. How do you find the cause and what typically fixes it?
What they're checking: Performance method: measure, attribute, fix — in that order.
A strong answer: Profile first (Macrobenchmark/Instruments), split TTID vs full display, defer SDK init off the critical path, baseline profiles on Android, lazy dependency graphs. Numbers before fixes.
Q5How do Kotlin coroutines' structured concurrency and scopes prevent leaked work?
What they're checking: Modern Android concurrency beyond launching and hoping.
A strong answer: Jobs form a tree under scopes tied to lifecycles; cancelling the scope cancels children. Contrast viewModelScope with GlobalScope, and mention exception propagation differences with supervisorScope.
Q6A crash spikes to 2% on your new release. You cannot roll back a mobile binary — what now?
What they're checking: Release engineering under mobile's hardest constraint.
A strong answer: Halt the staged rollout, read crash grouping, flag off the guilty feature remotely, hotfix through expedited review if needed. Prevention: staged rollouts plus feature flags on everything risky.
Q7How do you keep a scrolling list of images at 60fps on a mid-range device?
What they're checking: The bread-and-butter perf task on both platforms.
A strong answer: Decode at display size, cache decoded bitmaps, avoid main-thread work in binding, stable list identities to prevent rebinds — and measure with the platform profiler rather than eyeballing.
Q8Push notifications arrive late on some Android devices. Why, and what can you actually do?
What they're checking: Honesty about platform limits — pretending a code fix exists is the wrong answer.
A strong answer: OEM battery killers and Doze bucket the app; high-priority FCM helps but is quota-limited. Real mitigations: message priority hygiene, user education for critical apps, and not depending on silent pushes.
Now try answering these under interview pressure
InterviewGPT runs a mock Mobile interview — asks questions like these tailored to your situation, listens to your spoken answers, and scores every one with written feedback. First session free, no credit card.
Start a free Mobile interview