Mobile app developer roadmap: Flutter, Kotlin or React Native to the Play Store
Kenya is a mobile-first country: most people reach the internet through a smartphone, and M-Pesa trained everyone to transact on their phones. Banks, SACCOs, delivery services, schools, churches, hospitals, logistics firms and start-ups all want apps, and international companies hire mobile developers remotely.
This roadmap gets you from zero to a published app on the Google Play Store.
Step 0: Choose your stack
| Stack | Language | Builds | Why choose it | Start here |
|---|---|---|---|---|
| Flutter | Dart | Android + iPhone + web from one codebase | Very popular in Kenya and Africa, fast to build good-looking apps, one codebase | Dart & Flutter, then Flutter app development |
| Native Android | Kotlin | Android only | Best performance and full access to Android, required by some employers | Android apps with Kotlin |
| React Native (Expo) | JavaScript | Android + iPhone | Reuse JavaScript/React skills from web development | React Native apps |
Our suggestion: Flutter if you're starting fresh, React Native if you already know JavaScript and React, Kotlin if you want to specialise in Android or a job advert asks for it. Read choosing your stack for a deeper comparison. Pick one and stick with it for at least six months.
Stage 1: App development fundamentals (1–2 weeks)
Stage 2: The language (4–6 weeks)
Flutter path (Dart): Dart basics → functions and collections → classes and async → generics, enums and records → async streams and errors.
Kotlin path: Kotlin basics → functions and collections → classes and null safety → coroutines.
React Native path: the JavaScript stages of the web developer roadmap, then React → state and events → effects and data.
Checkpoint: you can write classes, lists/maps, functions and async code (await a delayed result) without looking up the syntax.
Stage 3: Building screens (4–6 weeks)
Flutter: setup and first app, widgets, layout masterclass, lists and grids, themes and assets, navigation, forms.
Kotlin: Android Studio first app, Compose basics, state and lists, navigation and MVVM.
React Native: components and styling, lists and navigation.
Checkpoint: a 3-screen app (list → detail → form) that looks good on a small phone and a large phone.
Stage 4: State, data and storage (4–6 weeks)
- Flutter: state management, HTTP, APIs and JSON, local storage and offline, Firebase auth and Firestore
- Kotlin: Retrofit and Room
- React Native: state and data
Build: Project: mobile expense tracker app.
Checkpoint: your app saves data that survives closing it, loads data from an API with loading and error states, and has a login.
Stage 5: The back-end your app talks to (3–4 weeks)
Most real apps need a server: how backends work, designing REST APIs, auth and tokens, Firebase, Supabase and deploying. Build Project: REST API and connect your app to it.
Stage 6: M-Pesa and device features (2–4 weeks)
- M-Pesa in apps and the Daraja API: the payment request always goes through your server, never straight from the app (the app must never contain your Daraja secrets).
- Device features: camera, location, sharing, notifications.
- Animations for polish.
Stage 7: Testing and publishing (2–3 weeks)
- Testing and release (Flutter), Android testing and release, publish an app, testing and publishing, React Native device features and publishing
- A Google Play developer account has a one-time registration fee (check the current amount on Google's site) and new personal accounts must run a closed test with testers before going to production. Plan for this.
- Write a privacy policy; the Play Store requires one if your app collects personal data.
Stage 8: Portfolio and work
Aim for:
- One published app on the Play Store (even a simple one).
- One app with a back-end and login (source on GitHub, with screenshots and a demo video in the README).
- One app with M-Pesa (sandbox) or another Kenyan-relevant feature.
- The Flutter Duka project as extra proof.
Then read app developer career and Show your projects. Look for junior mobile roles, internships at start-ups and agencies, and freelance work building simple business apps.
Summary
- Choose one stack: Flutter (recommended start), Kotlin or React Native.
- Fundamentals → language → screens → state and data → back-end → M-Pesa and device features → testing and publishing → portfolio.
- Keep secrets on the server; publish at least one app to the Play Store.
Check yourself
Which language does Flutter use?
Show answer
Dart
Which language is used for modern native Android apps?
Show answer
Kotlin
Where must your Daraja API secrets live: in the app or on your server?
Show answer
server
Which Google store do Android apps get published to? (two words)
Show answer
Play Store