Build a Cross-Platform Mobile App (React Native + Expo)

Track: Mobile

Every junior says they can build a web page. A working mobile app on your phone — that fetches real data, navigates between screens, and handles the messy states in between — is rarer and more memorable. It’s also the fastest way to prove you can ship to a platform, not just a browser tab.

What you’ll build: a cross-platform mobile app with React Native (Expo) that pulls from a public REST API, shows a list and a detail screen with navigation, stores something locally, and handles loading and error states gracefully. Targeting a native role? The same milestones map cleanly to Android (Kotlin + Jetpack Compose) or iOS (Swift) — the starter notes how.
Get the starter repo on GitHub →

Why this project gets interviews

Mobile interviewers want to see that you understand a screen lifecycle, navigation, and async data — not just UI. An app you can hand them on a phone (or a screen recording) clears that instantly. It maps to the keywords mobile postings list: React Native, Expo, iOS, Android, TypeScript, REST API, navigation, cross-platform — and the patterns transfer to Kotlin/Swift.

Skills & keywords you’ll demonstrate

Starter repo

Clone github.com/OptimalMatch/resume-project-mobile-app — an Expo entry, two screen stubs, an API client, and a NATIVE.md mapping the milestones to Android/iOS. Build it under your own account, committing per milestone. It pairs well with the FastAPI project — build the API, then the app that consumes it.

Build it in milestones

  1. Run it. Get the Expo app launching on your phone (or a simulator) with a single placeholder screen. Commit.
  2. Navigation. Add a list screen and a detail screen with a navigator between them. Commit.
  3. Fetch data. Pull a public REST API into the list; render each item. Commit.
  4. States. Handle loading spinners, an empty state, and API errors so it never just freezes. Commit.
  5. Persist. Save something locally — favorites or a recent list that survives a restart. Commit.
  6. Polish & ship. Icons, a splash, a README with screenshots or a screen recording, and a build. Commit.

Stretch goals

Put it on your résumé

Update your résumé and check it with the free ATS resume score — mobile roles weight exactly these keywords.

Frequently asked questions

Do I need a Mac to build this?
No. React Native with Expo runs on Windows, Mac, or Linux, and you test on your own phone with the Expo Go app — no Mac or paid developer account required to build the project. A Mac is only needed if you later compile a native iOS build.

Should I use React Native or go native (Kotlin/Swift)?
For a first portfolio piece, React Native + Expo is the fastest path to a runnable app on both platforms. If you are targeting native Android or iOS roles specifically, the starter maps the same milestones to Kotlin + Jetpack Compose or Swift so the project still fits.

Score your new mobile résumé — free →