HomeGuidesReferenceLearn

Expo Go

Learn about Expo Go, the free, open-source client for developing and testing React Native apps on Android and iOS.


Expo Go is a free, open-source client for testing React Native apps on Android and iOS without needing to build anything locally. It is the fastest way to get up and running is to use the Expo Go client app on your Android or iOS device. It allows you to open up apps served through Expo CLI and run your projects faster when developing them.

Install Expo Go on your device

It is available on both the Android Play Store and iOS App Store.

  • Android Play Store - Android Lollipop (5) and greater
  • iOS App Store - iOS 13 and greater

How it works

Expo Go is a native app that is installed on your device. When you run npx expo start in your project, Expo CLI starts a development server and generates a QR code. You can then open the Expo Go app on your device and scan the QR code to connect to the dev server.

Terminal
npx expo start
Expo Go connecting to Expo CLI

The dev server returns a JSON manifest file that describes the project. Expo Go uses this manifest to download the JavaScript bundle and any assets required to run the project. Then, the JavaScript engine executes this JavaScript bundle to render the React Native app.

You can open and share projects with the members of your organization by publishing with EAS Update. Updates are bundled for production environments using the npx expo export command.

Manifest

The manifest is similar to an index.html on the web. It is served from the root URL / and allows downloading the project script code from bundleUrl. The manifest can be customized using the app config (app.json, app.config.js). Additional fields like icon and splash can be used to customize how Expo Go or expo-dev-client presents the app.

{
  "name": "My New Project",
  "entryPoint": "index.js",
  "bundleUrl": "http://localhost:19000/index.bundle?platform=ios"
}

SDK Versions

Expo Go uses SDK versions that map to a major release of the expo and the Expo Go app. You can see the supported SDK versions in the Expo Go app by navigating to the settings page.

We release a new SDK version approximately every quarter. Find out which versions of React Native map to which versions of the Expo SDK.

Login into Expo Go

Open the Expo Go app after it has finished installing. If you have created an account with Expo CLI, you can sign in by clicking the Login button in the top header on the Home tab. Signing in will make it easier for you to open projects in the Expo Go app while developing them — they will appear automatically under the Projects section on the Home tab of the app.

Sometimes, it can be useful to run your app directly on your computer instead of on a separate physical device. If you would like to set this up, you can learn more about installing an Android Emulator and installing the iOS Simulator (macOS only).

Production

Expo Go is not intended for public distribution. It is a development client that is not optimized for performance. We offer a suite of tools for building and submitting your apps directly to the app stores. For more information, see Distribution.

You can create your own Expo Go type app by using the expo-dev-client package. This package allows you to create a native client with any custom native code or configuration or a third-party library that requires configuring native code. For more information, see development builds.

You can view the source code for the Android, iOS, and JavaScript on GitHub.

Next step

Create a new project

Now that the Expo Go app is installed, let's create a new app and write some code.