Skip to main content
Get your first Expo app running in just a few minutes. This guide will walk you through creating a new project and seeing it on your device or simulator.
This quickstart uses Expo Go, which means you don’t need to install Xcode or Android Studio. For custom native code, see Development Builds.

Prerequisites

Before starting, make sure you have:
  • Node.js 18+ installed (nodejs.org)
  • A code editor (VS Code recommended)
  • A mobile device OR iOS Simulator / Android Emulator
1

Create a new app

Open your terminal and run:
This creates a new Expo project with a working app template. The command will:
  • Create a my-app directory
  • Install all required dependencies
  • Set up the project structure with Expo Router
2

Navigate to project

Change into your new project directory:
3

Start the development server

Start the Expo development server:
You’ll see a QR code in your terminal and output like this:
The development server uses Metro bundler to compile your JavaScript and serve it to your app.
4

Open on your device

On your phone

  1. Install Expo Go on your device:
  2. Scan the QR code:
    • iOS: Use the Camera app
    • Android: Use the Expo Go app

Using a simulator

iOS Simulator (Mac only):Press i in the terminal. Expo will:
  • Open Xcode Simulator automatically
  • Install Expo Go if needed
  • Launch your app
Android Emulator:Press a in the terminal. Make sure you have an Android emulator running first.Web Browser:Press w to open in your default browser.
5

Make your first change

Open app/index.tsx in your editor and modify the welcome text:
app/index.tsx
Save the file and watch your app update instantly thanks to Fast Refresh!

What Just Happened?

Congratulations! You just:
  1. Created a new Expo app with Expo Router for navigation
  2. Started a development server with Metro bundler
  3. Opened your app on a device or simulator
  4. Made a change and saw it update in real-time

Understanding Your Project

File-Based Routing

Your app uses Expo Router for navigation. Files in the app/ directory automatically become routes:
Navigate between screens using the Link component:

Key Files

Controls your app’s settings:
app.json
Lists your app’s dependencies and scripts:
package.json

Development Commands

Interactive Terminal

When the dev server is running, press:
  • a - Open on Android emulator
  • i - Open on iOS simulator
  • w - Open in web browser
  • r - Reload the app
  • m - Toggle developer menu
  • j - Open React DevTools (web)
  • c - Show project QR code

Common Issues

Make sure your phone and computer are on the same WiFi network. If using a corporate network, try:
This uses a public URL that works on any network.
The default port (8081) is taken. Try:
Make sure Xcode is installed:
Then try running the simulator first:
Clear the cache and restart:

Next Steps

Learn Core Concepts

Understand how Expo works under the hood

Follow the Tutorial

Build a complete app step-by-step

Explore the SDK

Browse 100+ native modules for camera, location, notifications, and more

Complete Installation

Set up for production builds with Xcode and Android Studio
Remember: Expo Go is perfect for learning and prototyping, but for custom native code or third-party native libraries, you’ll need to create a development build.