React Native

Build native iOS and Android apps from a single React codebase using the components and patterns you already know.

Framework
npm
v0.88.0
126,774 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
98 /100 Excellent
Development Activity 100
Maintenance 96
Community 96
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
94 /100 Excellent
Architecture 95
Code Quality 92
Innovation 93
Learning Curve 85

React Native is an open-source framework, created by Meta, for building genuinely native mobile applications with React. Instead of rendering to a WebView, it maps your React components to real platform UI widgets on iOS and Android, so your app looks and feels native while sharing the vast majority of its logic across platforms.

Under its New Architecture, React Native runs your JavaScript on the Hermes engine and communicates with native code through JSI, the Fabric renderer, and TurboModules. The result is a mature, production-proven framework that powers apps at companies like Meta, Microsoft, Shopify, and Discord, backed by one of the largest ecosystems in mobile development.

What You Get

  • A set of core cross-platform UI components (View, Text, Image, ScrollView, TextInput, FlatList) that render to native widgets
  • A Flexbox-based StyleSheet API for laying out interfaces consistently across iOS and Android
  • Fast Refresh for near-instant feedback on code changes while preserving component state
  • A bridge to native code via JSI, TurboModules, and Fabric so you can drop down to Swift, Kotlin, Objective-C, or C++ when needed
  • The Metro bundler and a bundled CLI for developing, building, and shipping apps

Common Use Cases

  • Shipping a single product to both iOS and Android from one shared codebase
  • Adding new screens or features to an existing native app incrementally (brownfield integration)
  • Letting web/React teams build and own mobile apps without learning two native toolchains
  • Building high-fidelity, animation-rich UIs that still feel native to each platform

Under The Hood

Architecture

React Native is a large monorepo whose core lives in packages/react-native, split across a JavaScript layer (Libraries/, src/), shared C++ (ReactCommon), Android (Kotlin/Java under ReactAndroid), and iOS (Objective-C++/Swift). Your React component tree runs in JavaScript on the Hermes engine; under the New Architecture it drives native views through JSI (a lightweight C++ interface to the JS runtime), the Fabric renderer (a C++ rendering system that builds and diffs the native view hierarchy), and TurboModules (lazily-loaded native modules). Codegen (@react-native/codegen) generates type-safe native interface bindings from JS spec files, replacing the older asynchronous bridge with synchronous, typed calls.

Tech Stack

The codebase is roughly 35% C++, 22% Kotlin, 19% JavaScript, and 10% Objective-C++, reflecting its multi-platform nature. It relies on the Metro bundler (metro-runtime, metro-source-map), the Hermes JavaScript engine and compiler, Babel with a Hermes parser for JS transformation, and Flow for static typing. Native builds use Gradle (Kotlin DSL) on Android and CocoaPods/Ruby (Gemfile) on iOS. It peers with React 19 and ships its own CLI via commander/yargs.

Code Quality

The project is rigorously maintained: it contains 71 __tests__ directories exercised through Jest (jest.config.js), Flow static typing across the JS surface (.flowconfig), and dedicated internal ESLint config and preset packages. With 4,200+ contributors, an active release cadence, and CI-gated changes, the code quality bar is exceptionally high for a project of this scale.

API Design The developer-facing API is deliberately familiar: interfaces are plain React components composed with JSX, styled through a Flexbox-based StyleSheet API, and driven by standard React hooks and state. Fast Refresh keeps the edit-run loop tight, and the escape hatch to native modules is well-defined, so teams can stay in JavaScript for most work and drop into platform code only when necessary. Documentation on reactnative.dev is thorough, though the surface area of native tooling gives it a steeper ramp than a pure web library.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers