Why You Don't Need a Pro Stack to Use a MacBook Simulator
Hi, I'm Olamiji. I’m a Software Engineer who believes that while code is our tool, life is our canvas. I document my journey through front-end development and the lessons I learn outside the IDE.
I’ll be honest: I bought a MacBook specifically because of the Xcode Simulator.
I used to watch my colleagues develop mobile apps with that sleek "Virtual iPhone" floating on their screens, and I was fascinated. I wanted that same feeling. But when I finally got my Mac, and after battling version errors and setup headaches, I realized something critical.
If you are a Mac user, it’s easy to think that because you have the "heavy-duty" Xcode software, you automatically need to use a "heavy-duty" tech stack. But that’s a myth.
The Garage vs. The Engine Upgrade
Think of it like this: Xcode is your "Garage," and the Pro Stack (Level 2) is an "Engine Upgrade." You can have a world-class garage and still choose to drive a reliable, standard car (Level 1) while you're learning the ropes.
Note for Windows Users: Since Xcode is macOS only, I strongly recommend sticking with the Expo Go app on your physical device for previewing. It’s the fastest way to see your progress!
What Xcode Actually Gives You (Even as a Beginner)
Even if you stay in the Safe Stack (Level 1), Xcode is a massive advantage for two main reasons:
The iOS Simulator: Instead of constantly picking up your physical phone, you run a virtual iPhone on your screen. It makes UI development incredibly fast because you can see changes instantly while you type.
- How to use it: Once your terminal says your server is running, just press "i" on your keyboard.
Native Compilers: Xcode includes the tools needed to "build" apps. While you don't need them for the Expo Go sandbox, you’ll eventually use them when you're ready to submit your masterpiece to the App Store.
When Do the Two Worlds Meet?
If you’ve been following my series, you know about the Level 1 (Safe) and Level 2 (Pro) stacks. Here is how Xcode fits into each:
| Feature | Level 1 (Safe Stack) | Level 2 (Pro Stack) |
| Do you need Xcode? | Optional. (Only for the Simulator). | Required. (To build the Dev Client). |
| How you run it | You open Expo Go inside the Simulator. | Xcode "compiles" a custom app for you. |
| Native Modules | Limited to Expo Go defaults. | Full access (MMKV, Bluetooth, etc.). |
The "Beginner" Misconception
There is a common belief that once you install Xcode or Android Studio, you’ve left the "beginner" phase. That’s not true.
Think of Xcode as a Developer Utility. Using the Simulator while on the Safe Stack (Level 1) is a game-changer for your workflow, but remember: The Simulator is still running the "Sandbox" version of your app.
You only truly move to the Pro Stack (Level 2) when you install libraries like expo-dev-client that require Xcode to perform a "Native Build." Until then, enjoy the convenience of the Simulator while keeping your project simple, fast, and light.
Since we just discussed rolling back to the Safe Stack to keep things simple: Don't worry, you can still use your Simulator! You get the best of both worlds: the professional feel of Xcode and the "it just works" speed of Level 1.
The Result
Step 1: The "Aha!" Moment in the Terminal
Before we get to the beautiful screens, we have to look at the command that fixed everything.

In this shot, you can see me running npx expo start --go. Notice the QR code? By using the --go flag, I forced the Metro Bundler to generate an exp:// address that the standard Expo Go app can actually understand. This is the "Magic Key" that got me back into the sandbox.
Step 2: Choosing Your Path
Once you scan that QR code or open the link on your phone, Expo gives you a choice.

Because I have expo-dev-client in my project, the app asks: "How would you like to open this project?" * The Trap: If you pick "Development Build" without having built one yet, it will fail.
The Success: By selecting "Expo Go" and clicking "Allow," we are telling the phone to use the standard Expo app to render our code.

Step 3: Success on Mobile (Expo Go)
And just like that, we are in!


Here is the "Tab One" and "Tab Two" of the default Expo template running live on my physical device. It feels amazing to finally see "Tab Ones" (my custom edit) show up on the screen.This is the speed of Level 1 development.
Step 4: The "Dream" Setup (Xcode Simulator)
Finally, the reason I got a Mac in the first place—the iOS Simulator.


This is what my workspace looks like now. On the left, I have my VS Code open to index.tsx, and on the right, the iPhone 14 Plus Simulator is running perfectly.
Whether you are looking at your physical phone (Expo Go) or your Mac screen (Xcode Simulator), the goal is the same: Immediate Feedback. Now that the environment is fixed, we can finally stop fighting the setup and start building the app.
Don't Just Read, Build!
I’m documenting every step of this journey so we can learn together. The road from a "broken" QR code to a running Xcode Simulator taught me that mobile development isn't just about writing code, it's about understanding the environment you're building in.
In our next series, we’ll move from setup to Creation. We will be diving deep into:
Core Components: Understanding Views, Text, and Pressables.
Pro Styling: Mastering NativeWind (Tailwind) in a mobile context.
Our First Project: Building a real-world interface from scratch.
You can find the full series here