Let's think about this for a moment
Expo is a toolchain built on top of React Native that lets you run/build/publish your app without touching native code (Xcode, Android Studio) directly — it significantly cuts down setup time for beginners. React Native CLI, on the other hand, gives you full control when you need to add custom native modules, but it requires Xcode/Android Studio setup. With the Expo Go app (installed on your phone), you can live-preview your app just by scanning a QR code on a physical device — no need to set up an emulator/simulator at all.
Let's connect this to a real scenario
Running npx create-expo-app my-app creates a fresh project scaffold. Running npx expo start shows a QR code in the terminal — scan it with the Expo Go app on your phone and you can live-preview the app. Every time you save your code, it'll hot reload on your phone.
Code Example
# Create a new Expo project
npx create-expo-app my-first-app
cd my-first-app
# Start the development server
npx expo start
# Scan the QR code with the Expo Go app on your phoneA QR code appears in the terminal, and scanning it with the Expo Go app shows the app on your phone.5-Minute Try-It
Try running npx create-expo-app my-first-app. Install the Expo Go app on your phone and try scanning the QR code.
A Quick Heads-Up
The Expo Go app only works for Expo projects — previewing a project with custom native modules (React Native CLI) requires a development build.