Install Xcode, the iOS Simulator and Expo, create a starter app, and watch it run on a virtual iPhone on your Mac in one sitting.
Set up Expo and the iPhone simulator so I can see my app running
How it works
- Check Node.js and install it if missing: Vovy runs node -v in Terminal. Expo needs a current LTS version of Node.js, the engine that runs JavaScript tools, so it installs one if yours is missing or old.
- Install Xcode from the Mac App Store: Vovy opens Xcode in the App Store and starts the download. It is a large download, so Vovy keeps working on the next steps while it runs.
- Add the iOS Simulator runtime: In Xcode, Vovy opens Settings, then Components, and installs the latest iOS platform. Without it, the Simulator has no virtual iPhone to boot.
- Create a starter Expo app: Vovy types npx create-expo-app@latest in Terminal and names your project. This gives you a working React Native app to build on.
- Start Expo and open the Simulator: Vovy runs npx expo start, then presses i. The Simulator boots a virtual iPhone and your app loads on it, reloading every time code changes.
- Show the cheat sheet: A card lists the keys that matter: r to reload, i for iOS, a for Android, j for the debugger, plus the one command to start again tomorrow.
What you provide
- A Mac with free disk space (Xcode needs tens of GB)
- Your Apple ID for the App Store
- A name for your app
What you get
- Xcode and the iOS Simulator installed
- A running Expo starter app
- Live reload on a virtual iPhone
- A card of everyday Expo commands
FAQ
Do I need to pay Apple for this?
No. Xcode and the Simulator are free. The $99 a year Apple Developer Program only matters when you want TestFlight or the App Store.
Why is the Xcode download so slow?
Xcode plus an iOS runtime is many gigabytes, so it can take an hour on a normal connection. Vovy starts it first so other setup happens in parallel.
Can I do this on Windows?
No. The iOS Simulator only runs on macOS. On Windows you can use the Android emulator or Expo Go on a real phone.
Related tasks
All tasks