Get Started

Glossary of terms


app.json is a file that exists for every Expo project and it is used to configure your project, for example the name, icon, and splash screen. Read more in "Configuration with app.json / app.config.js"

Formerly the React Native equivalent of create-react-app. This has since been replaced with expo-cli.

The term "detach" was previously used in Expo to mean ejecting your app to use ExpoKit.

Expo Application Services (EAS) are deeply-integrated cloud services for Expo and React Native apps, such as EAS Build and EAS Submit.

The command-line tool for working with EAS.

The term "eject" was popularized by create-react-app, and it is used in Expo to describe leaving the cozy comfort of the standard Expo development environment, where you do not have to deal with build configuration or native code. When you "eject" from Expo, you have two choices:
  • Eject to bare workflow, where you jump between workflows and move into the bare workflow, where you can continue to use Expo APIs but have access and full control over your native iOS and Android projects.
  • Eject to ExpoKit, where you get the native projects along with ExpoKit. This option is deprecated and support for ExpoKit was removed after SDK 38.

Emulator is used to describe software emulators of Android devices on your computers. Typically iOS emulators are referred to as Simulators.

A synonym for app that usually implies something more single-use and smaller in scope, sometimes artistic and whimsical.

The command-line tool for working with Expo. Read more.

The iOS and Android app that runs Expo apps. When you want to run your app outside of the Expo Go app and deploy it to the App and/or Play stores, you can build a Standalone App.

The former name for the Expo Go app.

The Expo SDK provides access to device/system functionality such as camera, push notification, contacts, file system, and more. Scroll to the SDK API reference in the documentation navigation to see a full list of APIs and to explore them. Read more about the Expo SDK. Find it on GitHub.

ExpoKit is an Objective-C and Java library that allows you to use the Expo SDK and platform and your existing Expo project as part of a larger standard native project — one that you would normally create using Xcode, Android Studio, or react-native init. Read more.
Support for ExpoKit ended after SDK 38. Expo modules can implement support for custom native configuration, and projects that need even more custom native code can expose their Android Studio and Xcode projects with expo prebuild.

The operating system used on iPhone, iPad, and Apple TV. Expo currently runs on iOS for iPhone and iPad.

An Expo app manifest is similar to a web app manifest - it provides information that Expo needs to know how to run the app and other relevant data. Read more in "How Expo Works".

The React Native ecosystem has thousands of libraries. Without a purpose-built tool, it's hard to know what the libraries are, to search through them, to determine the quality, try them out, and filter out the libraries that won't work for your project (some don't work with Expo, some don't work with Android or iOS). React Native Directory is a website that aims to solve this problem, we recommend you use it to find packages to use in your projects.

npm is a package manager for JavaScript and the registry where the packages are stored. An alternative package manager, which we use internally at Expo, is yarn.

Traditionally, apps for iOS and Android are updated by submitting an updated binary to the App and Play stores. Updates allow you to push an update to your app without the overhead of submitting a new release to the stores. Read more in "Publishing".

Automates the process of installing, upgrading, configuring, and removing libraries, also known as dependencies, from your project. See npm and yarn.

We use the word "publish" as a synonym for "deploy". When you publish an app, it becomes available at a persistent URL from Expo Go, or in the case of Standalone apps, it updates the app.

"React Native lets you build mobile apps using only JavaScript. It uses the same design as React, letting you compose a rich mobile UI from declarative components." Read more.

Another term we occasionally use for Standalone app.

An emulator for iOS devices that you can run on macOS (or in Snack) to work on your app without having to have a physical device handy.

We use the word "slug" in app.json to refer to the name to use for your app in its url. For example, the Native Component List app lives at and the slug is native-component-list.

Snack is an in-browser development environment where you can build Expo experiences without installing any tools on your phone or computer.

An application binary that can be submitted to the iOS App Store or Android Play Store. Read more in "Building Standalone Apps".

XDE was a desktop tool with a graphical user interface (GUI) for working with Expo projects. It's been replaced by Expo CLI, which now provides both command line and web interfaces.

A package manager for JavaScript. Read more