Mobile interviews have a reputation for being all about lifecycle questions and memory management. And sure, those come up. But the thing that actually separates strong candidates in 2025 is being able to talk about architecture decisions and why you made them, not just recite what onResume() does.
This guide covers the questions that show up across iOS, Android, and cross-platform interviews, with notes on what interviewers are actually evaluating. I’m less confident about some of the cross-platform questions than the native ones, so take the Flutter and React Native sections with that caveat.
What interviewers evaluate (and what they say they evaluate)
Mobile interviewers typically frame their rubric around four things: platform knowledge, architecture, performance optimization, and testing. In practice, I’ve found that architecture and performance are weighted more heavily than most prep guides suggest, and raw syntax questions are weighted less.
A candidate who can explain why they chose MVVM over MVP for a specific feature, and what tradeoffs that introduced, will score better than a candidate who can recite the Activity lifecycle from memory but can’t explain when to use a ViewModel with LiveData vs. with Kotlin Flow.
Core mobile concepts: what comes up across platforms
App lifecycle states. Both platforms have equivalent concepts (foreground, background, suspended/killed) but different implementations. On Android: Created, Started, Resumed, Paused, Stopped, Destroyed. On iOS: Not Running, Inactive, Active, Background, Suspended. The question isn’t usually “list all the states” but “what happens to your async operations when the app goes to background?” That’s where candidates either show depth or reveal they’ve only memorized the diagram.
Data persistence. Candidates should be able to explain the tradeoff spectrum: key-value storage (fast, string/primitive only, no relations), lightweight databases (SQLite or Room on Android, Core Data on iOS), secure storage (Keychain on iOS, EncryptedSharedPreferences or Android Keystore on Android), and remote sync. When to use each is a judgment question, not a trivia question.
Memory management. iOS uses ARC (Automatic Reference Counting) rather than a garbage collector. Understanding strong, weak, and unowned references and when a retain cycle forms is mandatory for senior iOS interviews. Android uses a garbage collector, so the questions are more about avoiding memory leaks through Contexts and Fragments, and about large bitmap handling.
Push notifications. APNs for iOS, FCM for Android. Interviewers at companies with real notification infrastructure will ask about handling foreground vs. background delivery, rich notifications, notification channels (Android 8+), and battery impact of persistent socket connections vs. polling.
iOS-specific questions worth preparing
SwiftUI vs. UIKit. The practical answer in most real codebases is: UIKit for anything requiring fine-grained custom drawing, animation control, or older iOS support; SwiftUI for new features targeting iOS 16+ where the declarative model speeds up development. Interviewers at companies with large legacy codebases will ask about interoperability, so know UIHostingController and UIViewRepresentable.
Combine vs. async/await. Both are reactive programming tools but with different ergonomics. Combine works well for complex operator chains (debounce, merge, combineLatest). async/await is cleaner for sequential async tasks and has become the preferred default for new code since Swift 5.5. Being able to say “we started with Combine, migrated networking to async/await for readability, and kept Combine for the publisher chains” is a real answer that demonstrates production experience.
Core Data gotchas. Common interview territory: thread confinement (NSManagedObjectContext is not thread-safe), faulting behavior (objects are loaded lazily and can fault-in at unexpected times), and migration strategies for schema changes. If you’ve done a Core Data to CloudKit migration, mention it. That’s nontrivial work.
Auto Layout and performance. The constraint solver is O(n²) in the worst case for deeply nested constraint chains. Interviewers working on apps with large complex screens (feeds, custom keyboards, table cells with dynamic content) will ask about this. Know when to reach for setNeedsLayout/layoutIfNeeded manually and when manual layout in drawRect is faster than the constraint system.
Android-specific questions
Jetpack Compose vs. Views. Same dynamics as SwiftUI vs. UIKit. Compose is the modern default, Views are the legacy path, and most production codebases use both. Know the interop story (ComposeView, AndroidView). Interviewers at Android-first companies will ask about Compose performance: recomposition scope, remember vs. rememberSaveable, and derived state.
Coroutines and Flow. Coroutines replaced RxJava in most modern Android codebases. Interviewers expect you to know: CoroutineScope and lifecycle management (especially why launching in GlobalScope is usually wrong), viewModelScope vs. lifecycleScope, structured concurrency, and the difference between cold Flow and hot StateFlow/SharedFlow.
Fragment vs. Activity. The modern Android guidance is to use a single Activity with multiple Fragments navigated by Jetpack Navigation. But legacy codebases often have complex multi-Activity flows, and interviewers will ask about Fragment backstack management, Fragment-to-Fragment communication without coupling (via a shared ViewModel or navigation args), and why Fragment transactions can cause state loss if not handled carefully.
Hilt and dependency injection. Hilt (built on Dagger) is the recommended DI framework for Android. Expect questions about component hierarchy (SingletonComponent, ActivityComponent, ViewModelComponent), how to scope dependencies correctly, and the tradeoffs between Hilt and lighter alternatives like Koin.
Cross-platform: React Native and Flutter
The fundamental question for both frameworks is the same: how do they communicate with native platform APIs, and what’s the performance cost of that communication?
React Native uses a bridge (or the newer JSI architecture) between the JavaScript thread and native modules. Bridge serialization used to be a significant performance bottleneck on complex UIs. JSI removed much of that overhead. Expect questions about the bridge in legacy RN codebases and JSI in current ones.
Flutter compiles to native ARM code and draws its own UI using Skia (or Impeller on newer versions), bypassing the platform’s native widgets entirely. This means Flutter apps look identical on iOS and Android by default, for better or worse. Performance questions center on unnecessary rebuilds in the widget tree and how to use const constructors to avoid them.
For cross-platform interviews specifically, being able to articulate when you’d reach for React Native vs. Flutter vs. native is more valuable than deep implementation knowledge. Most interviewers asking about cross-platform are evaluating whether you’ll make good architectural decisions, not whether you’ve memorized the API surface.
Architecture patterns: the real interview differentiator
MVC, MVP, MVVM, MVI, VIPER. Most mobile interview prep lists all five and describes them abstractly. What interviewers actually care about: can you explain why your team chose a particular pattern for a particular problem and what the tradeoffs were.
A concrete example beats a definition every time. “We used MVVM because our data binding requirements were complex and we wanted the ViewModel to survive configuration changes without the View knowing about it. The downside was that our ViewModels got fat over time and we had to enforce a strict rule about pushing business logic down to use cases or it accumulated in the ViewModel layer.” That answer shows real architectural thinking.
The Stack Overflow Developer Survey 2024 found that Kotlin and Swift remain two of the most consistently loved languages among developers who use them, and mobile development continues to be a high-demand specialization globally.
The BLS Occupational Outlook Handbook projects software developer employment growth at 17% through 2033. Mobile development roles within that category continue to grow as device proliferation increases.
If you’re practicing for a mobile interview and want to run through technical and behavioral questions with real-time feedback on how clearly you explain architecture decisions, Craqly’s AI copilot supports mock interview sessions across mobile and other engineering roles.
Which platform are you interviewing for, and what’s the question category you’re least confident about?