Faysal Ahmed
Chapter 2

Platform Strategy — Native vs Cross-Platform

The Core Question

Should you build separate native apps for iOS and Android, or adopt a cross-platform framework like React Native or Flutter? There’s no universal answer — the right choice depends on team, timeline, and product requirements.

Native Apps

iOS (Swift/SwiftUI)Android (Kotlin/Jetpack Compose)
PerformanceFull access to Metal, Core Animation, ARKitFull access to Vulkan, Camera2, Android NDK
API accessFirst-day access to new platform featuresDelayed but broader hardware reach
Development speedSlower — two codebasesSlower — two codebases
Team costHigher — need iOS + Android specialistsHigher — need iOS + Android specialists
Quality ceilingHighest — platform-perfect UXHighest — platform-perfect UX

Cross-Platform Frameworks

React Native

  • Write in React/JavaScript; bridges to native modules.
  • Large ecosystem, strong community, proven at scale (Meta, Shopify, Coinbase).
  • Performance gap on complex animations; native modules add complexity.

Flutter

  • Write in Dart; renders its own pixels via Skia.
  • Consistent UI across platforms, excellent performance for 60fps UIs.
  • Smaller ecosystem; custom rendering can feel non-native without work.

Comparison

FactorReact NativeFlutter
LanguageJavaScript/TypeScriptDart
RenderingNative bridgeCustom engine (Skia)
UI fidelityNear-native with effortConsistent but distinct
Hot reloadYesYes
Code sharing (web)Yes (React Native Web)Yes (Flutter Web)
MaturityVery matureMaturing quickly

Hybrid Approach

Many teams build the core app in a cross-platform framework but write platform-specific modules for high-value features: camera pipelines, AR experiences, or complex gestures.

Decision Matrix

ScenarioRecommended
Startup with limited team and fast iteration neededCross-platform (Flutter or RN)
Product relies heavily on platform APIs (camera, health, AR)Native
Two teams available for iOS and AndroidNative
Need web + mobile code sharingReact Native
High-performance game or animation-heavy appNative (or Flutter for UI games)

Next: Chapter 3 — App Store Strategy & Submission