What is React Native and how does it differ from Flutter, native iOS/Android, and Cordova/Ionic?
React Native is Meta's open-source framework (released 2015) for building truly native mobile apps for iOS and Android using React and JavaScript/TypeScript — from a single codebase.
What makes React Native different:
Renders to real native components — your
<View>becomes aUIViewon iOS and anandroid.view.Viewon Android, NOT an HTML element and NOT a custom-painted canvas.JavaScript runs in Hermes (default since RN 0.70) and communicates with the native side via JSI (replacing the old async bridge).
React component model with hooks, JSX, and the full npm ecosystem.
vs Competitors:
Flutter — paints every pixel itself via Skia/Impeller using Dart; consistent UI but heavier binary and farther from native look-and-feel.
Native iOS/Android (Swift / Kotlin) — best performance and full platform API access; 2× the engineering cost for two codebases.
Cordova / Ionic / Capacitor — WebView-based; cheapest to build but worst performance and uncanny-valley UI.
React Native — real native views + React DX + shared business logic; the sweet spot when you want native feel without two native teams.
Don't say 'React Native lets you write apps in JavaScript' — every cross-platform framework claims that. The differentiators that matter in 2026: (1) React Native renders to real native views (UIView on iOS, android.view.View on Android) — it does NOT paint pixels like Flutter; (2) JSI + Fabric + TurboModules replaced the bridge, so JS ↔ native calls are now synchronous; (3) React mental model (components, hooks, JSX) carries over directly from web. Drop the names Hermes, JSI, Fabric — they signal you understand the modern stack.