Mobile App
Ship a cross-platform mobile app with React Native / Expo from planning to app store.
Phase Navigation
Planning & Setup
Define scope, choose Expo vs bare workflow, and set up the project skeleton.
Why
Mobile planning locks in constraints that are expensive to change later: navigation structure, state shape, and offline behavior. Expo vs bare is a 1-week-vs-3-months decision — Expo handles native modules and OTA updates for you; bare gives full native control but you own Gradle/Xcode builds.
When
Before any screen code. 1-2 weeks for a focused MVP. Decide iOS-only vs both platforms now — it affects every dependency choice.
How
Example
Common Problems
- ⚠Choosing bare workflow too early — you spend weeks on Gradle/Xcode instead of features
- ⚠No offline plan — app shows blank screens on flaky networks, users perceive it as broken
- ⚠Deep links and navigation structure decided ad-hoc, causing refactors when adding screens
Best Practices
- ✓Start with Expo managed — eject only when you need a native module Expo can't provide
- ✓Design navigation as a tree upfront with expo-router; file paths are your routes
- ✓Treat server state and local state separately — TanStack Query + Zustand, not one giant Redux store
Resources for this stage
Tools
AI Assistance
Development & Testing
Build screens with fast refresh, device testing, and CI on every commit.
Why
Mobile bugs are harder to reproduce than web — device fragmentation, OS versions, and network conditions multiply edge cases. Fast refresh and on-device testing from week 1 catch layout and gesture issues that simulators miss. Without CI, regressions in native dependencies silently break builds.
When
After setup. Build the riskiest screen first (auth or core flow) to validate navigation + data layer early.
How
Example
Common Problems
- ⚠Testing only on simulator — gesture and keyboard bugs appear only on real devices
- ⚠Ignoring Android during iOS dev — layout breaks on small Android screens at submission
- ⚠No crash reporting until after launch — first bad device is a 1-star review
Best Practices
- ✓Test on a real device from day 1 — scan the Expo QR on your phone, not just the simulator
- ✓Run Maestro E2E on both iOS and Android in CI — platform bugs are asymmetric
- ✓Install Sentry before first TestFlight — you need crash data before reviewers hit them
Deployment & OTA Updates
Build production binaries with EAS and ship JS updates over the air without store review.
Why
EAS Build produces signed binaries in the cloud without wrestling with Xcode signing. OTA updates (expo-updates) let you push JS-only fixes in minutes instead of waiting 1-7 days for store review — critical for crash fixes, but only safe if you structure updates correctly.
When
When core flows are tested on device. Set up EAS and expo-updates before first TestFlight so the update channel exists when you need it.
How
Example
Common Problems
- ⚠Shipping an OTA update that uses a new native API — crashes on devices still on the old binary
- ⚠No staging channel — every update goes straight to all users, no way to catch regressions
- ⚠Waiting for store review for a crash fix that could have been an OTA update
Best Practices
- ✓Only OTA-ship JS-only changes; any native change requires a new binary + store review
- ✓Always update a staging channel first and wait 24h before promoting to production
- ✓Wire expo-updates rollback into your incident runbook — it's your fastest revert
Resources for this stage
Tools
Templates
Store Submission & Growth
List on App Store and Google Play with assets, ASO, and review-driven iteration.
Why
Store listing quality directly drives install conversion — screenshots and the first 3 lines of description decide whether a search user installs. ASO (App Store Optimization) is the mobile equivalent of SEO: done once, it compounds for the app's lifetime. Review response is your public support channel.
When
After the first production binary is built and tested. Don't rush listing assets — a great screenshot set can 2x install conversion.
How
Example
Common Problems
- ⚠Marketing-style screenshots that hide the real UI — users distrust and don't install
- ⚠Keyword stuffing in the title — stores penalize and ranking drops
- ⚠Ignoring 1-star reviews — each unanswered negative review costs ~10 installs
Best Practices
- ✓First screenshot shows the core action, not a splash screen — it's the #1 install driver
- ✓Reply to every review within 24h; a polite response often turns a 1-star into a 4-star on update
- ✓Run Play Console icon/screenshot A/B tests continuously — small wins compound over an app's life
Full Developer Lifecycle
A 14-stage developer roadmap from idea to maintenance — visualize dependencies and track progress.
Next Step