This page is part of the ForgeSDLC knowledge base — an AI-assisted, human-directed methodology for taking product work from concept to production. For the core operating model and vocabulary, see Forge SDLC overview and What is ForgeSDLC?.
Cross-platform mobile development (blueprint)
Purpose: Compare single-codebase approaches — React Native, Flutter, Kotlin Multiplatform (KMP), hybrid shells, and PWAs — for sharing logic and UI across iOS and Android (and sometimes web/desktop).
Cross-platform stacks trade some platform fidelity and integration latency for velocity and shared ownership. The right choice depends on performance needs, team skills, native surface area (camera, Bluetooth, widgets), and long-term maintenance appetite.
Approach taxonomy
Approach
Code sharing (typical)
Performance
Native access
Team skills
Native (Swift / Kotlin)
0% UI+logic across platforms
Best
Full
Platform specialists
React Native
High UI + logic (JS/TS)
Good; bridge cost shrinking (new arch)
Modules + community libs
Web / React
Flutter
High UI + logic (Dart)
Good; Skia/Impeller
Plugins + FFI
Dart / widget mindset
KMP
Logic high; UI often native
Native UI perf
expect/actual boundaries
Kotlin + native UI
Hybrid (Ionic / Capacitor)
Very high (web in WebView)
Variable
Plugins
Web
PWA
Full (web)
Browser-limited
Web APIs
Web
Decision flowchart
flowchart TD
A[New mobile product or rewrite?] --> B{Need max performance<br/>or deep OS APIs?}
B -->|Yes| N[Native iOS + Android]
B -->|No| C{Need high code sharing<br/>and near-native UX?}
C -->|Yes| D{Team stronger in<br/>JS/TS or Dart?}
D -->|JS/TS| RN[React Native]
D -->|Dart / willing| FL[Flutter]
C -->|Share logic only| KMP[Kotlin Multiplatform + native UI]
C -->|Web-first / internal| HY[Hybrid / PWA]
React Native deep dive
Topic
Detail
Architecture
JS thread + native UI; New Architecture: Fabric (UI), TurboModules, JSI for tighter native sync