Write a one-page spec, create an Expo project, and ask a coding agent to build one screen at a time. Test on your own phone with Expo Go, add local storage first and a Supabase backend later, and check each change. Running the app on your phone is free; publishing costs $99 a year for the Apple App Store and a one-time $25 for Google Play.
Tools you need
The 10 steps
Write a one-page spec
Write what the app does and does not do:
App: Streaks. Who: students building daily habits.
Must have: add a habit, tick it off for today, see the current streak.
Not now: sign-in, notifications, sharing.
Data: stored on the phone only.
Rules: works offline; a missed day resets the streak.Install the basics and create the project
Install the current Node.js LTS and VS Code, then in a terminal:
npx create-expo-app@latest streaks
cd streaksExpo's documentation was moving between SDK versions in November 2026, and Expo Go on a phone supports a specific SDK. If the app will not open in Expo Go, read the note on the Expo getting-started page about which SDK version to use.
Run it on your own phone
Install the Expo Go app on your phone, then start the development server:
npx expo startScan the QR code with your camera or Expo Go. The phone and computer should be on the same Wi-Fi. When the starter screen appears, your setup works. Expo Go is for development; it is not how you ship.
Write AGENTS.md
Add an AGENTS.md with the run and test commands and rules such as: use TypeScript, keep each screen in its own file, never store secrets in the app. The AGENTS.md guide has a template.
Ask the agent for a plan
In Cline or your agent of choice, Plan mode:
Read SPEC.md and AGENTS.md. Propose small steps to build this Expo app. Name the files for each step
and how I can check it on my phone. Do not write code yet.Remove anything outside the spec.
Build one screen at a time and test on the phone
Approve one step, reload the app on your phone, tap through it and read the diff before you commit. Keep tasks small: the list screen, then the add-habit form, then the streak logic. Phone-only problems, such as a keyboard covering a text box, appear only on the device.
Store data on the device first
Ask the agent to save habits with a simple local storage library, and to handle the case where nothing is saved yet. Test by closing the app completely and reopening it. Only add a backend such as Supabase when you need sign-in or data across devices.
Test the rules that matter
Write down the streak logic as examples: ticked yesterday and today is a streak of two; a missed day resets to zero; ticking twice in one day counts once. Ask the agent to write unit tests for those cases and break the logic on purpose to see a test fail.
Review it like someone else wrote it
Start a fresh agent session and ask it to review the repository against the spec for bugs, missing error handling and anything that would crash on a slow or offline phone. Fix the real problems.
Know what publishing involves before you plan it
Running on your own phone is free. Expo's free plan lists 15 Android and 15 iOS builds in its low-priority queue. The Apple Developer Program costs $99 a year, which you need for the App Store and TestFlight. Google Play charges a one-time $25 fee, and personal accounts must complete Google's app-testing requirements before release. Many portfolio apps stop at a screen recording and a GitHub link.
Make it yours
- Add a Supabase backend and email sign-in so habits sync across devices.
- Add a weekly summary screen with a simple chart.
- Rebuild the same spec with Flutter using an AI builder such as Rocket and compare the result.
- Try an AI mobile builder such as Vibecode, whose first app build is free, and compare it with your hand-reviewed version.
Troubleshooting
| Problem | Fix |
|---|---|
| Expo Go says the project is incompatible | The SDK version of your project does not match what Expo Go supports. Check Expo's current getting-started note and create the project with the SDK version it names. |
| The QR code opens nothing | Put the phone and computer on the same Wi-Fi, turn off VPNs and try npx expo start --tunnel if your network blocks local connections. |
| It works in Expo Go but a store build fails | Expo Go includes a fixed set of libraries. If you added a native library, you need a development build instead of Expo Go. |
| The agent keeps changing the wrong files | Name the file in the prompt, run git restore . and ask again with a narrower task. |
Frequently asked questions
Can I build a mobile app with AI for free?
Yes. Expo, VS Code and free coding agents cost nothing, and Expo Go lets you test on your own phone. Publishing to the stores costs money: $99 a year for Apple and a one-time $25 for Google Play.
Is Expo good for beginners?
Yes. It lets you build with JavaScript and React and test instantly on a phone. Most AI coding tools also know React Native well.
Which AI app builders make mobile apps?
Replit, Bolt (through Expo), Vibecode, Rork, Rocket (Flutter) and Emergent build mobile apps. Lovable, Base44 and v0 make web apps. See the free vibe coding tools list for their free plans.
Do I need a Mac to build an iPhone app?
You can develop and test with Expo Go on an iPhone from any computer. Building and submitting an iOS app to the App Store uses Expo's cloud build service or a Mac, and needs a paid Apple Developer membership.
Learn this with mentors
Programmes for builders and engineers with admissions open: live classes, mentors and project work.








