Favicon of react-native

react-native

A framework from Meta for building native mobile apps with React, using native UI controls with full access to the native platform on iOS and Android.

React Native brings React's declarative UI framework to iOS and Android app development. It's aimed at developers who already know React, or want to, and who need to ship native mobile apps rather than a web view wrapped in a native shell. Apps built with React Native use real native UI controls and have full access to the native platform, while still being written primarily in JavaScript and React components, and it's developed and supported by many companies and individual contributors beyond Meta itself.

Key features

  • Native UI controls: renders using each platform's actual native components rather than a web view, giving apps native look, feel, and performance.
  • Declarative, component-based UI: the same React model of composing encapsulated, stateful components applies directly to mobile screens.
  • Fast iteration: JavaScript code changes can be live reloaded in seconds without rebuilding the native app, which speeds up the development loop considerably.
  • Code portability: share logic and patterns across iOS, Android, and other supported out-of-tree platforms rather than maintaining fully separate native codebases.
  • Shared foundation with React: since it's built on React, further documentation on component and API behavior shared between web and native lives in the core React docs.
  • Active ecosystem: developed and supported by many companies and individual core contributors, with releases discussed openly in a dedicated releases discussion repository.
  • Structured upgrade path: an Upgrading Guide documents how to move between React Native versions to pick up new APIs, views, and developer tools.

Ideal use cases

React Native fits teams that want to ship both an iOS and an Android app from a largely shared codebase, especially teams that already have React or JavaScript expertise and want to reuse that skill set for mobile. It's also a good option when you want native performance and native UI controls rather than a hybrid web-view app, since React Native renders through the actual platform UI toolkit instead of a browser embedded in a native shell. Larger proposals and cross-cutting decisions are discussed publicly in a dedicated community discussions and proposals repository, which is useful if you want visibility into where the framework is headed.

Building and running iOS apps is limited to macOS as the development machine, even though you can develop for Android on Windows, macOS, or Linux; tools like Expo can work around some of that constraint. If your app needs to be pixel-perfect against a highly specialized native API surface not yet well covered by the ecosystem, or your team has no JavaScript experience and a small native codebase is more practical, a fully native approach may fit better than adopting a cross-platform framework.

Teams already invested in Meta's broader tooling, or those who want a large pool of existing engineers who already know the framework, also tend to gravitate toward React Native, since it has been in production use across many companies for years and has correspondingly mature tooling around testing, debugging, and release management.

Installation

React Native apps can target iOS 15.1+ and Android 7.0 (API 24) or newer. The recommended path depends on your project type, and the official Getting Started guide covers the most common scenarios:

  • Trying out React Native quickly through a hosted sandbox environment.
  • Creating a new application from scratch using the Getting Started guide.
  • Adding React Native to an existing native application, for teams integrating it incrementally into an app that already exists.

Follow the Getting Started guide for the exact commands for your platform and setup, since the recommended toolchain, including whether to use Expo, depends on your specific project needs. The React Native documentation covers components and APIs specific to mobile, while the shared React documentation covers concepts common to both React and React Native.

Categories:

Frequently asked questions

Share:

Stars
126.2K
Forks
25.2K
Last commit
3 hours ago
Repository age
12 years
License
MIT
Self-hosted
No
Activity score
92/100
View Repository
Built with:

Similar to react-native

Favicon

 

  
  
Favicon

 

  
  
Favicon