Previewing in Expo Go
The single best part of working in Appsanic is the feedback loop. You describe a change; seconds later, the result is running on your phone. No emulator, no compile step, no fighting Xcode.
This page covers the preview flow in detail.
Set it up once
- Install Expo Go from the App Store or Google Play. Free.
- Open your Appsanic project in the builder.
- Click the Preview panel. It shows a QR code.
- Scan the QR with your phone's camera (iOS) or from inside Expo Go (Android).
- The app loads on your phone in seconds.
One-time setup on each device. The agent's updates stream straight in afterward.
How the streaming works
Expo Go is essentially a "container app" that runs the app you're building. Appsanic broadcasts your app over the internet, and Expo Go shows it on your phone.
When the agent edits a file, your phone picks up the change in 1-3 seconds. The screen you're looking at usually updates without even a flicker. Bigger changes (new libraries) can take 30 seconds or so. You don't have to refresh anything.
What works in Expo Go
Most features work identically to a production build:
- UI, styling, navigation.
- State management.
- Supabase calls (database, auth, storage).
- Stripe Checkout (test mode).
- REST and GraphQL API calls.
- Most third-party libraries.
- Push notifications (inbound; Expo Go can receive them).
What doesn't work (or needs a real build)
Expo Go is great for 90% of work, but a few specific things only work in a real build:
- Apple/Google in-app purchases. Buying things inside the app uses native code that isn't in Expo Go. See Payments.
- App icons and splash screens: those are baked into a real build, so you see Expo Go's icon during preview.
- Widgets, share extensions, and other "app extras" outside the main app.
- Fully interactive maps. Pan-and-zoom map views (
react-native-maps) rely on native code Expo Go doesn't include. The agent builds map screens with static map images, geocoding, and routes instead - those work in the preview and on devices - and hands turn-by-turn directions off to the Google Maps app. - Real ads. AdMob ads only render in dev and production builds. In the preview, the agent puts clearly-labeled placeholder boxes where the ads will appear.
- Unusual libraries that depend on native code Expo Go doesn't include.
When you hit one of these, the agent builds you a Dev Client. Basically a custom version of Expo Go that has everything your app specifically needs:
"Build me a Dev Client for iOS / Android so I can test in-app purchases."
The build takes 10-20 minutes in the cloud (you don't run it on your machine). Install the Dev Client like you'd install Expo Go; from then on, you preview through that instead.
Live updates (fast iteration)
While the agent is working, each code change hot-reloads in seconds. To force a full reload (e.g., if state gets stuck):
- Shake your phone. A dev menu appears with Reload and Debug options.
- Or use the Reload button in Appsanic's Preview panel.
Network mode: tunnel vs LAN
Appsanic's preview server uses a secure tunnel by default, meaning your phone can reach the server from anywhere, even on a different network. If you're developing at home on Wi-Fi, this is usually fine.
If you're on a slow or restricted network (cafe, corporate VPN), tunnel mode can lag. Ask the agent to switch to LAN mode:
"Switch the preview server to LAN mode."
Your phone then connects directly to your dev machine's IP, which is faster but requires you to be on the same Wi-Fi network.
Debugging
From the shake-menu's Debug option:
- Console logs stream to your browser.
- Network requests show in the React Native Debugger (if attached).
- Redux / Zustand state is inspectable in the debug tools.
When something's broken, a readable error usually appears on-screen. Tap the error for more detail and a stack trace.
Handing the preview to someone else
Sometimes you want a tester to see your in-progress build without a full TestFlight round. The simplest path is to let them open the same running build you do:
- Through Expo Go. Have your tester install Expo Go (one time), then point them at the same project preview you're viewing. As long as the preview server is running, they see your build as of the moment they open it.
- Through a dev build. If your app uses features Expo Go can't run (in-app purchases, real ads, fully interactive maps), build a Dev Client (see above) and have the tester install that instead, then load the preview through it.
This kind of sharing is meant for quick, in-the-moment testing while you build, not long-term distribution. For wider or more stable testing - external testers, fixed builds, store-ready betas - use TestFlight or Play Store internal testing, which you drive through EAS once you have exported your project. See Exporting to GitHub for the working path to a real build.
When something isn't updating
If your phone seems stuck on an old version:
- Shake > Reload in the app.
- If that doesn't work, close and re-open Expo Go.
- If still stuck, in Appsanic > Preview panel, click Restart server.
- Re-scan the QR if needed.
The agent occasionally needs to restart the bundler after large changes; this usually does it.
Next
Now that you've seen your app on a real phone, send the code out to your own repo. Read Exporting to GitHub.
