What is the difference between native and cross-platform mobile development? When would you choose each?
What the interviewer wants to hear
- Native: Kotlin/Swift with platform SDKs, one codebase per platform
- Cross-platform: Flutter or React Native, shared code for both
- Native gives best access to new OS features and performance
- Cross-platform saves time and team size
- Choice depends on team skills, budget, performance and platform features
Model answer
Native development means building the Android app in Kotlin with Jetpack Compose and the iOS app in Swift with SwiftUI, using each platform SDK directly. You get the best performance, the newest OS features on day one, and the most natural look and feel, but you maintain two codebases and often two teams. Cross-platform frameworks like Flutter and React Native let you share most of the code between platforms, so a smaller team can ship faster. They are a great fit for typical business apps like e-commerce or booking. I would choose native for apps that depend heavily on platform features, advanced graphics, or very tight performance, and cross-platform when time to market and team size matter more. Kotlin Multiplatform is a middle option that shares business logic but keeps native UI.
Can you answer it under time pressure?
Take a timed easy round and get scored on every answer.
More easy Mobile App Developer questions
- Explain the lifecycle of a mobile app screen. Why does it matter?
- How do you handle network calls and errors in a mobile app?
- What is MVVM and why is it used in mobile apps?
- How do push notifications work in a mobile app?
- How do you run slow work like network calls or database reads in a mobile app without freezing the UI?
- What options do you have for storing data on the device, and how do you choose between them?
- How do you request runtime permissions like camera or location, and what do you do when the user says no?
- How do you make your app look good on different screen sizes, orientations and font sizes?
- What is the difference between declarative UI (Compose, SwiftUI, Flutter, React Native) and the older imperative style?