In addition to the questions below, see the
forums for more common questions and answers. Some of this information is repeated from earlier sections of the introduction but we include it here for comprehensiveness.
Is Expo similar to React for web development?
Expo and React Native are similar to React. You'll have to learn a new set of components (View
instead of div
, for example) and writing mobile apps is very different from websites; you think more in terms of screens and different navigators instead of separate web pages, but much more your knowledge carries over than if you were writing a traditional Android or iOS app.
What is the difference between Expo and React Native?
How much does Expo cost?
How do you make money if Expo is free?
Just because you can run everything that Expo provides on your own hardware doesn't mean setting up and managing all of the services you need is the right fit for your team.
How do I add custom native code to my Expo project?
Managed Expo projects don't support custom native code, including third-party libraries which require custom native components. In a managed project, you only write JavaScript.
In
our SDK, we give you a large set of commonly desired, high-quality native modules. We recommend doing as much in JavaScript as possible, since it can immediately deploy to all your users and work across both platforms, and will always continue to benefit from Expo SDK updates.
However, if you need something custom that isn't possible with the native modules provided in the SDK, like on-the-fly video processing or low-level control over the Bluetooth radio to do a firmware update and
other features requested here, you can run
expo eject
and have full control over the underlying native projects.
How do I share my Expo project? Can I submit it to the app stores?
The fastest way to share your managed Expo project is to publish it. You can do this by clicking 'Publish' in Expo Dev Tools or running
expo publish
in your project. This gives your app a URL; you can share this URL with anybody who has the Expo client for Android and they can open your app immediately.
Read more about publishing on Expo. To share with iOS users, you can use Apple TestFlight or sign up for the
Priority Plan in order to share your app with teammates through the Expo client.
When you're ready, you can create a standalone app (
.ipa
and
.apk
) for submission to Apple and Google's app stores. Expo will build the binary for you when you run one command; see
Building Standalone Apps. Apple charges $99/year to publish your app in the App Store and Google charges a $25 one-time fee for the Play Store.
How do I get my existing React Native project running with Expo?
Right now, the easiest way to do this is to use expo init
(with Expo CLI) to make a new project, and then copy over all your JavaScript source code from your existing project, and then yarn add
ing the library dependencies you have.
If you have similar native module dependencies to what is exposed through the Expo SDK, this process shouldn't take more than a few minutes (not including npm install
time). Please feel free to ask us questions if you run into any issues.
If you are using native libraries that aren't supported by Expo, you will either have to rewrite some parts of your application to use similar APIs that are part of Expo, or you just might not be able to get all parts of your app to work. Many things do though!
What version of Android and iOS are supported by Expo apps?
Expo supports Android 5+ and iOS 10+.