Expo↗ simplifies React Native app development by handling much of the configuration needed for Android and iOS. You can use Expo for free, and it makes building and distributing apps easier. With Expo Go installed, you can preview the app you're developing on a physical device in real time.
Expo makes building and distributing an app easier. In the Expo Go workflow, however, some libraries are unavailable and you cannot add custom native features. React Native CLI gives you direct access to the native project when the features you need aren't available through that workflow.
Check whether the features your project needs are compatible with Expo. If they aren't, consider React Native CLI.
Node.js is the JavaScript runtime required for React Native development. Download and install the LTS version.
Official Node.js website↗
After installation, run node -v and npm -v in a terminal to check the versions.
Sign up on the Expo website and sign in to your account.
Official Expo website↗
Click Create a new project and enter a name to create your Expo project.
Install Expo Go on your phone.
Download Expo Go for Android↗Download Expo Go for iOS↗
Scan the QR code to preview your app on the device as you develop it. You can also sign in, open Expo Go, and enter the link for your development app.
expo: The C:~\expo.ps1 file cannot be loaded because running scripts is disabled on this system. See about_Execution_Policies (https://go.microsoft.com/fwlink/?LinkID=135170↗) for more information.
At line:1 char:1
+ expo init
+ ~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PowerShell's execution policy can prevent expo init from running. Changing the policy resolves the error described here. Open PowerShell as an administrator and enter the following command.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Enter Y to confirm
Check the execution policy with the following command.
Choose between Expo and React Native CLI based on your project's needs. Expo makes development easier, but Expo Go has limits on the libraries and native features you can use. For features outside that workflow, consider React Native CLI or the Expo native project workflow described below.
Expo previously used expo eject to convert an Expo project to a React Native CLI project. That command was deprecated and replaced by prebuild↗.
Expo FAQ: Is expo eject deprecated?↗