Edit this page
An overview of how you can integrate Expo tools into existing native apps ("brownfield" apps).
An existing native app that was built using another technology, whose main entry point is not a React Native view, is commonly referred to as a "brownfield" app. For example, if your app was built using UIKit and Swift, and you want to use React Native for a single screen then that is considered an "existing native app" and "brownfield".
In contrast, "greenfield" apps are created using Expo or React Native from the start or where React Native is the entry point and where all other UI branches off from.
By these definitions, if you have an "existing native app" for Android or iOS and you want to learn how to use Expo and React Native in your project (perhaps on a single screen or even a single feature), then this guide is for you.
Support for integrating Expo modules into existing native projects is still experimental. If you encounter issues, create an issue on GitHub. Not all features of the tools and services below will be available when used in the context of an existing native app.
Expo is primarily built with greenfield apps in mind. Not all Expo tools and services are compatible with existing native projects.
Tool/Service | Supports brownfield? |
---|---|
Expo SDK - an extended standard library for React Native | Yes |
Expo Modules API - build native extensions using an idiomatic Swift/Kotlin API | Yes |
Expo Router - file-based routing and navigation | No |
Expo CLI - tools to run and develop your app from your terminal | No |
Expo Dev Client - adds in-app developer tooling to Debug builds | No |
EAS Build - a CI/CD service built specifically for Expo/React Native | Yes |
EAS Submit - a hosted service that uploads your app to stores | Yes |
EAS Update - instant updates of your app JavaScript and assets | No |
Learn how to add a React Native root view to your existing native app in the React Native docs.
Install the Expo Modules API and use it to add existing Expo modules or write your own native extensions.