← Mobile app development with Android, Flutter and React Native

Lesson 1 of 4

Native or cross-platform: choosing how to build

2 min read

The options

ApproachLanguagesStrengthsTrade-offs
Native AndroidKotlin (Java)best performance, full platform APIs, first access to new featuresAndroid only
Native iOSSwiftsame, for Apple devicesiOS only; needs a Mac
FlutterDartone codebase, own rendering engine, consistent pixel-perfect UI, fast hot reloadlarger app size; platform features through plugins
React NativeJavaScript/TypeScriptone codebase, React skills reused, native UI componentsbridge/JSI complexity for heavy native work
Kotlin MultiplatformKotlinshared business logic, native UI on each sideyounger ecosystem

India is Android-first (well over 90% of phones), and many devices are budget phones with limited memory, storage and patchy connectivity. Designing for those constraints is a selling point in interviews.

How to choose (an interview-ready answer)

  • One small team needing both platforms quickly → Flutter or React Native.
  • Heavy device integration (camera processing, Bluetooth, background services) or top performance → native.
  • An existing React web team → React Native.
  • Most real companies are pragmatic: cross-platform for most screens, native modules where needed.

Mobile is different from web

  • Lifecycle: the OS can pause or kill your app at any time to save memory and battery.
  • Unreliable networks: offline-first thinking, retries, caching.
  • Limited resources: memory, battery, storage, CPU on low-end phones.
  • Permissions: camera, location and notifications must be requested in context and can be denied.
  • Release process: store review, staged rollouts, and users who don't update for months, so your backend must support old app versions.

Check yourself

  • When would you choose native over Flutter?
  • Name three ways mobile development differs from web development.

Sign up free to save your progress.