Skip to main content
React Native brings React’s declarative UI framework to iOS and Android. With React Native, you use native UI controls and have full access to the native platform.

Why React Native?

Cross-platform development

Write once, run on both iOS and Android with the same codebase

Native performance

True native components - not WebViews - for smooth, responsive UIs

Fast Refresh

See changes instantly without losing app state during development

React ecosystem

Leverage your React knowledge and the vast npm ecosystem

Core features

Declarative UI with React

React Native uses React’s component-based architecture. Build encapsulated components that manage their own state, then compose them to create complex UIs.
import React from 'react';
import {View, Text, StyleSheet} from 'react-native';

const WelcomeScreen = () => {
  return (
    <View style={styles.container}>
      <Text style={styles.title}>Welcome to React Native</Text>
      <Text style={styles.subtitle}>Build amazing mobile apps</Text>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
  title: {
    fontSize: 24,
    fontWeight: 'bold',
  },
  subtitle: {
    fontSize: 16,
    color: '#666',
  },
});

Native components and APIs

React Native provides a comprehensive set of native components and APIs:
  • View: The fundamental container component (like div)
  • Text: Display text with native typography
  • Image: Show images from various sources
  • ScrollView: Scrollable container for content
  • FlatList: Performant list rendering
  • TextInput: Native text input with platform styling

Fast Refresh for instant feedback

Fast Refresh lets you see changes in your React components instantly while preserving component state. Edit your code, save, and see updates in seconds - no full rebuild required.
Fast Refresh preserves local component state, so you can iterate quickly without losing your place in the app.

Get started

Quick start

Create your first React Native app in minutes

Environment setup

Set up your development environment for iOS and Android

Running on device

Test your app on physical devices

Core components

Explore built-in UI components

How React Native works

React Native uses a JavaScript runtime to execute your application code while rendering native UI components. Here’s the architecture:
1

JavaScript thread

Your React code runs in a JavaScript engine (Hermes by default), handling business logic and component rendering
2

Bridge communication

The JavaScript thread communicates with the native side through an asynchronous bridge, passing serialized messages
3

Native rendering

Native modules receive instructions and render actual native UI components (UIView on iOS, android.view on Android)
While React Native provides excellent performance, be mindful of bridge communication for performance-critical operations. Consider using native modules or Turbo Modules for compute-intensive tasks.

Platform requirements

React Native apps target:
  • iOS: iOS 15.1 and newer
  • Android: Android 7.0 (API 24) and newer
  • Node.js: Version 20.19.4, 22.13.0, 24.3.0, or newer
You can develop on Windows, macOS, or Linux, though building iOS apps requires macOS with Xcode.

Example: Complete app structure

Here’s what a typical React Native app looks like:
import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';

// Register the main application component
AppRegistry.registerComponent(appName, () => App);

Community and ecosystem

React Native has a thriving ecosystem:
  • React Navigation: Industry-standard navigation solution
  • Expo: Managed workflow and comprehensive SDK
  • React Native Directory: Curated list of libraries
  • Flipper: Advanced debugging tool

Next steps

Ready to build your first app? Follow our quickstart guide to create a new React Native project and start coding in minutes. For a deeper understanding of setting up native development tools, check out the environment setup guide.

Build docs developers (and LLMs) love