React Native
React Native is a cross-platform framework from Meta that lets developers build iOS and Android applications using React. UI components map to native platform widgets at runtime, so the apps feel native while sharing most of their codebase across platforms.
How it works
JavaScript (or TypeScript) code runs in a JS engine (Hermes by default on modern versions) and communicates with the native side through a bridge or, in the New Architecture, through JSI (JavaScript Interface) and Fabric for synchronous calls. UI primitives like <View> and <Text> map to UIView / UITextView on iOS and ViewGroup / TextView on Android.
Common ecosystem
- Frameworks: Expo (managed workflow, OTA updates, build service), bare React Native, RNTL for testing
- Navigation: React Navigation, Expo Router
- State management: Zustand, Redux, Jotai, MobX
- Native modules: TurboModules and Codegen in the New Architecture
React Native vs Flutter
- React Native. JavaScript / TypeScript; uses platform-native UI components; large web-developer pool; ecosystem fragmentation.
- Flutter. Dart; renders its own UI with Skia/Impeller; tighter visual consistency; smaller ecosystem outside Google.