React Native
React for Android and iOS apps: JavaScript runs in the Hermes engine inside the app, and React components become real platform views, with JavaScript and native code calling each other directly through JSI.
React Foundation project- What it is
- Cross-platform mobile apps
- Type
- Open source
- Made by
- React Foundation
- Foundation
- React Foundation, joined February 2026. Contributed by Meta together with React. Part of the Linux Foundation
- License
- MIT
- Facts checked
- 28 October 2026
What it is
A React Native app is a native app with a JavaScript engine inside it. You write React components with core primitives such as View, Text and Image, and the renderer, Fabric, turns them into the platform’s own views on Android and iOS, so buttons, text input and scrolling behave like any other app’s. JavaScript runs in Hermes, an engine built for React Native that compiles release builds to bytecode ahead of time; Hermes V1 has been the default since 0.84 (February 2026). Since the New Architecture became the default in 0.76 (October 2024), JavaScript and native code talk through JSI, a C++ interface that lets JavaScript hold references to native objects and call their methods directly, instead of the old asynchronous bridge that serialized every message. Device features come from Turbo Native Modules written in Kotlin, Java, Swift, Objective-C or C++, and during development the Metro bundler serves your JavaScript with Fast Refresh.
The project releases a new minor version about every two months and supports the latest three; it is still numbered 0.x. React Native 0.82 (October 2025) was the first that runs only on the New Architecture, and 0.84 stopped including legacy code in iOS builds. 0.88 (October 2026) ships React 19.3, makes web-style event dispatching the default and adds variable fonts and iOS SceneDelegate support, with no user-facing breaking changes. The docs recommend starting with a framework, naming Expo, rather than the bare template. Beyond phones, React Native runs on Meta Quest headsets, and other teams maintain out-of-tree platforms such as Windows and macOS. Meta built it and contributed it to the React Foundation on February 24, 2026.
Why teams pick it
- Real platform views instead of a web page, so apps get native scrolling, text input and accessibility
- One React codebase and one set of skills for Android, iOS and the web, with npm packages and React libraries shared between them
- Fast Refresh shows JavaScript edits in the running app without rebuilding the native binary
- New Architecture features: synchronous layout measurement, concurrent React (Transitions, Suspense) and direct JavaScript-to-native calls through JSI
Watch out for
- Still 0.x, with a minor release about every two months and only the latest three supported, so apps have to keep upgrading; some releases still contain breaking changes
- Native work doesn’t go away: device features without a library need a module in Kotlin or Swift, and building still needs Xcode and Android Studio unless a service such as EAS Build does it
- Libraries that only supported the old bridge no longer work since 0.82, when the Legacy Architecture could no longer be enabled
- The New Architecture doesn’t make an app faster by itself; the docs say apps may need refactoring to use synchronous layout or concurrent features
The React Native family
1 technologies built from or on React Native
How it fits with other technologies
A new app without a framework: start Metro, then build and run on a device · bash
npx @react-native-community/cli@latest init MyApp # bare template: android/, ios/ and App.tsx
cd MyApp
npx react-native start # Metro serves the JavaScript with Fast Refresh
npx react-native run-android # build the Android app, install it on an emulator or device
cd ios && bundle exec pod install && cd .. # CocoaPods for the iOS project
npx react-native run-ios # build and launch in the iOS Simulator
# the docs' recommended start instead: React Native with the Expo framework
npx create-expo-app@latest my-appLegacy and New Architecture#
The New Architecture replaced how JavaScript reaches native code. Apps and libraries had to move between 0.76, when it became the default, and 0.82, when the old path was switched off.
| Legacy Architecture | New Architecture | |
|---|---|---|
| JavaScript ↔ native | An asynchronous bridge that serialized every message | JSI: JavaScript holds references to C++ objects and calls them directly |
| Rendering | The original renderer; layout read back asynchronously, so onLayout updates could paint a frame late | Fabric, with synchronous layout access and support for concurrent React |
| Native modules | Native Modules called over the bridge | Turbo Native Modules called through JSI |
| Status | Frozen in 0.80; ignored from 0.82; removed from iOS builds in 0.84 | Default since 0.76 (October 2024); the only option since 0.82 |
See it in a real stack
No architecture uses React Native yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2015–2026
Facebook first showed React Native in early 2015 as a way to bring React’s model to mobile, open-sourced it for iOS in March 2015 and added Android in September, when it described its first cross-platform React Native app, Ads Manager. The idea was to render real platform views from JavaScript rather than a web page in a WebView.
As apps grew, the asynchronous bridge became a bottleneck, and Meta spent years on a rewrite. Hermes became the default engine in 0.70 (September 2022), and the New Architecture, with JSI, the Fabric renderer and Turbo Native Modules, became the default in 0.76 (October 2024). 0.82 (October 2025) made it the only architecture, and 0.84 (February 2026) made Hermes V1 the default.
Meta announced in October 2025 that React Native would move to the React Foundation with React. The move took effect on February 24, 2026, the same day React Native came to Meta Quest, and its repository moved to the react GitHub organisation in June. 0.88 followed in October 2026.
Why it’s built this way
- Native views instead of a WebView
- Rendering the platform’s own controls gives apps native look, feel and accessibility, at the cost of keeping a native layer per platform.
- Replace the bridge with JSI
- Serializing every call across an asynchronous bridge made frequent updates and large data, such as camera frames, slow; direct references to C++ objects remove the copying and allow synchronous calls.
- Ship its own JavaScript engine
- Hermes compiles JavaScript to bytecode during the build, which the docs say improves start-up time and cuts memory use and app size compared with JavaScriptCore.
- Point new users to a framework
- Routing, native builds and upgrades are hard to get right in a bare app, so the docs now recommend starting with a framework such as Expo.
Timeline
- 2015
Open-sourced for iOS in March; Android support in September
- 2022
Hermes becomes the default engine in 0.70
- 2024
The New Architecture becomes the default in 0.76
- 2025
0.82 runs only on the New Architecture
- 2026
Hermes V1 default in 0.84; moves to the React Foundation on February 24; 0.88 in October
- Engineering at Meta: React Native, bringing modern web techniques to mobile (March 26, 2015)
- Engineering at Meta: React Native for Android, how we built the first cross-platform React Native app (September 14, 2015)
- React Native blog: 0.70 (Hermes as the default engine)
- React Native blog: 0.76, New Architecture by default (October 23, 2024)
- React Native blog: 0.82, a new era (October 8, 2025)
- React Native blog: 0.84, Hermes V1 by default (February 11, 2026)
- React Native blog: React Native comes to Meta Quest (February 24, 2026)
- React blog: The React Foundation (February 24, 2026)
- This Week In React #285 (June 12, 2026; repositories move to the react GitHub organisation)
- React Native blog: 0.88 (October 19, 2026)
Sources13 · facts checked 28 October 2026
- React Native docs: About the New Architecture (JSI, synchronous layout, concurrent features)
- React Native docs: Turbo Native Modules
- React Native docs: Using Hermes
- React Native docs: Releases (about every two months, latest three minors supported)
- React Native docs: Get started (use a framework such as Expo)
- React Native docs: Get started without a framework (Community CLI)
- React Native docs: Out-of-tree platforms
- React Native blog: 0.82 (New Architecture only; legacy flags ignored)
- React Native blog: 0.84 (Hermes V1 default; legacy code removed from iOS builds; Node.js 22.11)
- React Native blog: 0.88 (React 19.3, web-style event dispatching, variable fonts, SceneDelegate)
- React Native blog: React Native comes to Meta Quest
- React blog: The React Foundation (React Native now owned by the foundation)
- GitHub: react/react-native (MIT licence, releases)