Back to Tutorials

Setting Up Expo / React Native

A complete guide to creating your first Expo project and running it on iOS, Android, and Web platforms.

May 13, 2026 15 min read Paddy Byrne
React Native Expo iOS Android Web Beginner

Introduction

Expo is a framework and platform for universal React applications. It allows you to build native iOS and Android apps using JavaScript and React, and also run them on the web. This tutorial will guide you through setting up your development environment and creating your first Expo app.

Prerequisites

This tutorial assumes you have basic knowledge of JavaScript and React. If you're new to React, I recommend learning the basics first. Check out my CV for more information about my experience with React Native development.

Prerequisites & Setup

  1. Install Node.js

    Expo requires Node.js. Download and install the latest LTS version from the official website.

    # Check if Node.js is installed
    node --version
    npm --version

    If you don't have Node.js installed, visit nodejs.org and download the LTS version.

  2. Install Expo CLI

    The Expo CLI is a command-line tool that helps you create and manage Expo projects. For detailed installation instructions, check the official Expo documentation.

    npm install -g @expo/cli

    This installs the Expo CLI globally on your system.

  3. Install Required Tools

    For iOS development, you'll need Xcode (macOS only). For Android development, you can use Android Studio or just the Expo Go app.

    For web development, no additional tools are needed beyond what's already installed.

Creating Your First Project

  1. Create a New Expo Project

    Use the Expo CLI to create a new project. Choose the "blank" template for a minimal setup.

    npx create-expo-app MyFirstApp

    # Or with TypeScript
    npx create-expo-app MyFirstApp --template blank-typescript
  2. Navigate to Your Project

    cd MyFirstApp
  3. Start the Development Server

    npx expo start

    This will start the Expo development server and open a browser window with the Expo DevTools.

Running on Different Platforms

iOS (macOS only)

  1. Install Xcode

    Download and install Xcode from the Mac App Store. This is required for iOS development.

  2. Install iOS Simulator

    Open Xcode and go to Preferences > Components to install the iOS Simulator.

  3. Run on iOS Simulator

    With your Expo development server running, press i in the terminal or click "Run on iOS simulator" in the Expo DevTools.

Android

  1. Install Android Studio (Optional)

    For full Android development, install Android Studio. However, you can also use the Expo Go app for testing.

  2. Using Expo Go App

    Download the Expo Go app from the Google Play Store on your Android device.

    With your development server running, scan the QR code displayed in the terminal or Expo DevTools using the Expo Go app.

  3. Run on Android Emulator (with Android Studio)

    Press a in the terminal or click "Run on Android device/emulator" in the Expo DevTools.

Web

  1. Run on Web

    Press w in the terminal or click "Run in web browser" in the Expo DevTools.

    This will open your app in a web browser using the Expo web runtime.

Understanding the Project Structure

Let's explore the files created by Expo:

MyFirstApp/
├── App.js # Main app component
├── app.json # Expo configuration
├── package.json # Dependencies and scripts
├── assets/ # Images and other assets
│ ├── icon.png
│ ├── splash.png
│ └── favicon.png
└── node_modules/ # Installed dependencies

The App.js file is where you'll write your React components. The app.json file contains configuration for your Expo app, such as the app name, icon, and splash screen.

Next Steps

Congratulations! You now have a working Expo app running on multiple platforms. Here are some next steps to continue your learning:

  • Learn React Native components and APIs
  • Add navigation with React Navigation
  • Integrate with APIs and databases
  • Deploy your app to the App Store and Play Store