What Is React Native?
React Native is an open-source framework created by Meta that lets you build native mobile apps for iOS and Android using JavaScript and React. Unlike hybrid approaches that render inside a web view, React Native produces actual native UI components. Your users get the look, feel, and performance of a native app while you write most of your code once.
The framework has been in production since 2015 and powers apps like Instagram, Facebook, Shopify, Discord, and Bloomberg. As of 2026, React Native remains one of the two dominant cross-platform frameworks alongside Flutter.
How React Native Works
React Native uses a bridge architecture (now replaced by the New Architecture) to communicate between JavaScript and native code:
- You write UI components in JSX (React syntax)
- React Native translates those into native platform views
- Business logic runs in a JavaScript engine (Hermes by default)
- Native modules handle platform-specific tasks like camera, GPS, or file system access
The New Architecture (Fabric + TurboModules)
Since React Native 0.76, the New Architecture is enabled by default. It replaces the old asynchronous bridge with:
- Fabric: A new rendering system that allows synchronous communication with the native UI layer
- TurboModules: Lazy-loaded native modules with direct JSI (JavaScript Interface) bindings
- Codegen: Generates type-safe native code from your JavaScript/TypeScript specs
The result is significantly better performance, reduced memory usage, and smoother animations compared to the legacy bridge.
Getting Started
You have two main paths to start a React Native project:
React Native CLI
The bare-metal approach. You get full control over native code from day one.
- Requires Xcode (macOS only for iOS) and Android Studio
- Full access to native project files (ios/ and android/ directories)
- Manual linking of native dependencies
- Best for teams that need deep native customization
Expo
A managed platform built on top of React Native that handles most native complexity for you.
- No Xcode or Android Studio needed for development
- Expo Go app for instant testing on devices
- EAS Build for cloud-based native builds
- Prebuild system for when you need native customization
- Recommended by the official React Native docs as the default starting point
Core Concepts
Components and Props
React Native provides a set of core components that map to native views:
- View maps to UIView (iOS) / android.view.View (Android)
- Text maps to UILabel / TextView
- Image maps to UIImageView / ImageView
- ScrollView, FlatList, SectionList for scrollable content
- TextInput for user input
- Pressable for touch handling
Styling
React Native uses a JavaScript-based styling system inspired by CSS but not identical to it. Flexbox is the default layout model. Styles are defined as JavaScript objects, and there is no cascading.
Navigation
React Navigation is the standard routing library. It provides stack, tab, and drawer navigators with native-feeling animations. Expo Router builds on top of React Navigation and adds file-based routing similar to Next.js.
State Management
You can use React built-in state (useState, useReducer, useContext) for simple apps, or adopt libraries like Zustand, Jotai, or Redux Toolkit for larger applications. TanStack Query (React Query) is widely used for server state management.
Performance Tips
- Use FlatList instead of ScrollView for long lists (virtualized rendering)
- Enable Hermes engine (default since RN 0.70)
- Avoid unnecessary re-renders with React.memo and useCallback
- Use Reanimated for smooth 60fps animations on the native thread
- Profile with Flipper or React DevTools
- Use the New Architecture for synchronous native access
Native Modules and Libraries
When you need functionality beyond JavaScript, you have several options:
- Expo Modules API: Write native modules in Swift/Kotlin with a clean TypeScript interface
- TurboModules: Part of the New Architecture, provides type-safe native bindings
- Community libraries: Camera (react-native-vision-camera), maps (react-native-maps), payments (react-native-iap), and hundreds more
When to Choose React Native
React Native is a strong choice when:
- Your team already knows JavaScript/TypeScript and React
- You need to ship on both iOS and Android with a single codebase
- You want access to a massive ecosystem of libraries and tools
- You need to integrate with an existing React web codebase
- Time-to-market matters and you want rapid iteration
Consider alternatives if you need extremely graphics-intensive apps (games), or if your team is more comfortable with Dart (Flutter) or native development (Swift/Kotlin).
React Native in 2026
The ecosystem is mature and stable. The New Architecture is the default, Expo has become the recommended entry point, and Hermes delivers strong JavaScript performance. With over 100,000 apps in production, React Native continues to be a reliable choice for cross-platform mobile development.
2026 Current Status
- React Native 0.83 is the current stable version (ships with Expo SDK 55)
- New Architecture is default: enabled by default since 0.76, Old Architecture permanently removed in 0.82
- Bridge replaced by JSI (JavaScript Interface) for direct native access
- Fabric Renderer and TurboModules active in all projects
- Hermes JavaScript engine is the default
- New projects automatically use New Architecture with zero migration needed