Preview your React Native APK: a phone for the build loop

React Native APK preview means one thing: you build the APK — with eas build --platform android --profile preview or ./gradlew assembleRelease — and minutes later you are watching that exact build run on a phone in your browser. Not Expo Go loading your JS bundle (it can't render built APKs with native modules), not a Play Store internal track that takes its time, and not an APK file you WhatsApp to a tester and hope they install. The app itself, tappable, on a real Android phone you can hand to someone else. PreviewAPK is that phone: a cloud device you push builds to, drive, and share, for $25 a month per account.

Preview your next React Native build

PreviewAPK is in private beta. Get early access to preview your own React Native builds.

Get early access

The React Native preview problem

React Native makes building fast and previewing slow. You change a screen, build an APK, and then you need somewhere to see it. Expo is great for development iteration — but once you have a real build, Expo Go can't show it: Expo Go previews JS bundles, not built APKs with native modules. The usual fallbacks are all friction: an emulator that eats your laptop's memory, a physical device tethered to your desk, or a Play Store internal track that takes its time and asks your testers for accounts. And the path everyone actually uses — build the APK, drop it in WhatsApp or Drive, tell the tester to enable "Install unknown apps" — ends with half your testers never installing it. The build loop stalls at the last step, the one where a human actually looks at the app.

A preview phone fixes the stall by separating the build from the viewing. Your machine builds; the cloud phone runs. You get the app in front of your eyes without installing an emulator, without keeping a device farm on your desk, and without routing every preview through a store or a file transfer. For the general loop applied to any Android app, see how to test an Android app online — and if you want the full Expo comparison, what Expo Go doesn't do.

Push, drive, verify

The loop has three steps, and it stays the same whether you drive it yourself or hand it to an agent:

  1. Push — Build with eas build --platform android --profile preview (with "buildType": "apk" in your eas.json preview profile) or with cd android && ./gradlew assembleRelease. Push the APK to your cloud phone with the CLI, the API, or an MCP tool call. The build lands on a device running Android 10 through 15, on a Pixel 9 Pro or a Galaxy S24.
  2. Drive — Open the phone in your browser and tap through the build yourself, or let your agent drive it: taps by label, typing, screenshots, and logs, all through the same device. This is the same AI agent Android testing loop, pointed at your React Native build.
  3. Verify — Screenshot the screens that matter, check the logs for the errors that matter, and hand over the device's permanent preview link. The person receiving it watches the same phone live — no APK file to forward, no install instructions to write, no "did it install?" debugging.

If you just need a build checked quickly, test your APK online on the same phone, with the same three steps.

For agents building React Native apps

React Native developers increasingly hand the build loop to an agent: the agent writes the code, builds the APK, and then — in most setups — stops, because it has no eyes. PreviewAPK gives the agent eyes and hands. Its MCP tools cover pushing the APK, driving the app, taking screenshots, and reading logs, and the CLI docs cover the same loop from a terminal. The agent can verify its own work: open the screen it just changed, screenshot it, compare it against what was asked for, and fix what is wrong before it reports back.

That changes what "done" means for an agent-built React Native app. Instead of a build that compiled, you get a build that was seen running — with screenshots and logs as evidence. The idle auto-stop (15 minutes) means an agent that wanders off does not leave a device running; the session simply ends, and the next push starts fresh.

For humans

Not every preview needs an agent. Sometimes you just need a client, a cofounder, or a tester to see the build. Hand them the device's permanent preview link and they watch the app run in their browser. Testers can install from a QR code when they want the build on their own device. Nobody installs an emulator, nobody creates a store account, and nobody has to take your word that the build works — they can see it.

That is the difference between sending a build and sharing a preview. A sent APK is a file and a hope. A shared preview link is the app itself, running, with you (or your agent) able to drive it while the other person watches.

From EAS build to live preview

If you ship with EAS, the preview step slots straight after your build command. EAS internal distribution is install-based: the reviewer downloads the APK and installs it, then tells you what they saw. A preview phone adds the live layer on top of that flow — the same APK, but streamed to a phone in the browser and shared as a link. Here is the whole chain:

  1. Set "buildType": "apk" in the preview profile of your eas.json.
  2. Run eas build --platform android --profile preview and take the resulting APK.
  3. Push it to your PreviewAPK cloud phone — CLI, API, or an MCP tool call from your agent.
  4. Hand the reviewer the device's permanent preview link. They watch the build live; you drive it while they watch if they want.

Gradle shops get the identical loop from step 3 onward — ./gradlew assembleRelease produces the same pushable APK. The phone is indifferent to how the build was made, which is the point: whether the APK came from EAS, Gradle, or Flutter's build command, the preview loop is push, drive, verify, share.

Keep going

Ready to try the loop? Test an APK online, read the guide to testing an Android app online, explore AI agent Android testing, or check the CLI docs to wire the loop into your own workflow. React Native is one wedge; the phone underneath it is the same one every PreviewAPK build uses.

FAQ

How do I preview a React Native APK without an emulator?

Build the APK with ./gradlew assembleRelease or with eas build --platform android --profile preview, then push it to a PreviewAPK cloud phone. The phone runs the build in your browser — no emulator install, no Android SDK on your machine, no Play Store account. You watch it run, drive it, and hand over a preview link.

Can Expo Go preview a built React Native APK?

No. Expo Go previews JS bundles, not built APKs with native modules. Once your app has a real build — a release APK from EAS or Gradle — you need a real device or emulator to see it. A cloud preview phone fills that slot without an install.

Can an AI agent preview my React Native build?

Yes. PreviewAPK gives agents MCP tools plus a CLI and an API: push the APK, drive the app by tapping labels, take screenshots, and read the logs. The agent verifies the build and reports back with evidence, instead of you reading a build log and hoping.

Which Android versions and devices does the preview run on?

Android 10 through 15, on Pixel 9 Pro and Galaxy S24 devices. That covers the versions most React Native apps ship against, on current flagship hardware.

What does a React Native APK preview cost?

PreviewAPK is $25 per month per account, with unlimited runs. Sessions stop automatically after 15 minutes idle, so a forgotten tab never keeps a device busy.