React Native
A framework for building native iOS and Android apps using React and JavaScript. Write once, run on both platforms. Used by Instagram, Discord, Shopify. Not a web app — compiles to real native components. Faster than separate native codebases, with near-native performance.
Meta (Facebook) · Created React Native in 2015
- Cross-platform iOS + Android apps.
- Teams with React/web skills.
- Apps needing fast iteration and OTA updates.
- Apps needing maximum native performance (use Swift/Kotlin).
- Apps with heavy platform-specific UI.
- Games (use Unity/Unreal).
Definition
React Native lets you build mobile apps using React components that render to native UI (not web views). JavaScript bridge or the new Fabric architecture communicates with native modules. One codebase for iOS and Android. Expo simplifies the build/deploy workflow.
Why it exists
Maintaining separate Swift (iOS) and Kotlin (Android) codebases is expensive. React Native lets web developers build native apps with one codebase, sharing logic and skills.
How it works
Write React components using native primitives (View, Text, ScrollView). The JS bridge (or JSI/Fabric) calls native UI APIs. Expo provides a managed dev workflow, OTA updates, and EAS Build/Submit for app store deployment. Libraries for camera, maps, etc.
Scaling limits
Bridge overhead for heavy native communication (Fabric/JSI helps). Native modules needed for platform-specific features. Performance is near-native but not always equal. Large apps can have slow startup.
Cost shape
Free and open source. Expo's EAS Build/Submit has free + paid tiers.
Alternatives
- Flutter — Dart language, compiles to native, great performance, different ecosystem.
- Native (Swift/Kotlin) — Best performance and platform integration, but two codebases.
Failure modes
- Bridge performance bottlenecks.
- Native module compatibility issues.
- Slow JS startup on large apps.
- Platform-specific bugs.