React Native definition
React Native is an open-source framework created by Meta for building mobile apps for iOS and Android using JavaScript or TypeScript and React. Unlike hybrid apps that run in a web view, React Native renders real native UI components, so one shared codebase produces apps that look and feel native on both platforms.
How does React Native work?
Developers write React components using primitives such as View, Text and Image. At runtime, React Native maps them to real platform views, a UIView on iOS and an Android View on Android, so scrolling, text input and accessibility behave natively. JavaScript runs in Hermes, an engine Meta built for mobile startup speed and memory use, and communicates with native code to create and update those views.
The New Architecture, the only architecture since React Native 0.82, replaced the old asynchronous bridge. The JavaScript Interface (JSI) lets JavaScript call native code directly, the Fabric renderer enables synchronous layout and concurrent React features, and TurboModules load native modules lazily. Together they remove many historic performance bottlenecks, especially for lists, gestures and animations.
Expo and the React Native ecosystem
The React Native documentation recommends starting new apps with a framework, and Expo is the main one. It provides file-based routing, a large set of maintained native modules, cloud builds through EAS Build, store submission and over-the-air updates through EAS Update. Custom native code is still possible through config plugins and development builds, so teams no longer have to choose between convenience and control.
- Navigation: Expo Router or React Navigation.
- Animation and gestures: Reanimated and Gesture Handler.
- Data: TanStack Query, Redux Toolkit or Zustand.
- Styling: StyleSheet, NativeWind or a component library such as Tamagui.
- Testing: Jest, React Native Testing Library, Detox or Maestro.
- Monitoring: Sentry for crashes and performance.
- Push notifications: Expo Notifications or Firebase Cloud Messaging.
Apps built with React Native
Meta uses React Native in parts of Facebook and Instagram, and Microsoft uses it in parts of its Office and Outlook apps. Shopify, Discord and Coinbase have also adopted it for their mobile apps. These companies show the pattern most large adopters follow: React Native for most screens, with native code where it clearly pays off.
React Native vs Flutter
React Native uses JavaScript or TypeScript and platform UI components, so apps inherit native look and behavior and web teams can contribute quickly. Flutter uses Dart and draws its own interface, giving identical visuals on every device and excellent animation performance. React Native fits teams with React experience or a web app to share logic with. Flutter fits heavily branded designs and teams comfortable adopting a new language.
Benefits, limitations and when to use it
Benefits include one codebase for two platforms, a huge JavaScript ecosystem, fast refresh during development, shared logic and types with a web app, and over-the-air updates for JavaScript changes. Limitations include upgrades between versions that can take real effort, reliance on community packages of varying quality, and the need for some Swift and Kotlin knowledge for native modules.
React Native suits ecommerce, fintech, social, booking and on-demand apps. Nexzem builds React Native apps with Expo and TypeScript, adding native modules for payments, maps and device features where needed. Automated builds and tests in CI keep each release routine rather than risky.