New: Roadmaps ordered paths through our cheat sheets and flashcards, so you always know what to study next.
Explore themSee what's new on GitHubFrom your first Kotlin file to a signed, published app on Google Play.
A 14-step learning path. Follow it in order, or jump to what you need.
For developers who want to build native Android apps from scratch, whether you're new to mobile or bringing experience from another language and picking up Kotlin along the way. Plan on about 6 to 8 weeks at a few hours a week, moving from Kotlin and Android Studio through Compose UI, app architecture, testing, and security to a real Play Store release. This path stays on Android: it does not cover iOS development (Swift, SwiftUI, Xcode) or the deeper design-system work of building a UI from scratch, and the iOS Developer path covers Apple's side of mobile. By the end you can build a multi-screen app in Kotlin and Jetpack Compose, structure it with an architecture that survives past a single feature, and ship a signed, tested release to Google Play.
Expected: comfort writing code in at least one programming language. Helpful but not required: prior exposure to object-oriented concepts.
This is the language every Android screen, ViewModel, and Gradle script in this path is written in, and you can start writing real Kotlin before you ever open Android Studio.
Kotlin needs somewhere to run: Android Studio's debugger, Logcat, and profiler are how you'll see what the code from step 1 actually does instead of guessing.
Once you're writing real code in Android Studio, you need a safety net for it: branches to try ideas, commits to undo mistakes, and a remote to back up work before you ship anything.
You can write real Kotlin, find your way around Android Studio without hunting for buttons, and keep your code safely versioned in Git. Next up: turning that into screens someone can actually tap through.
Finish this section to unlock.
+100 XP
With Kotlin, the IDE, and Git in place, you can build your first real screens: activities, fragments, and the Jetpack building blocks (ViewModel, Room, Retrofit) that hold an app together.
Step 4 sketched Compose fundamentals in passing; here you go deep enough to build every screen in this path's app without touching a single XML layout.
A screen alone isn't an app: this is how you wire the Compose screens from step 5 into back stacks, deep links, and tab flows a user can actually move through.
This is where reactive state clicks, and it's normal to need a second pass at it: separating what the server owns from what the UI owns with StateFlow is what makes the screens from steps 5 and 6 actually update correctly.
MVVM, MVI, and repository patterns are where most learners get stuck picking one; this step explains why each exists so the screens and state from steps 5 through 7 survive past a single feature, and it's normal to revisit this once you've built more.
You can build a multi-screen Compose app whose state survives rotation and whose architecture won't collapse the moment you add a second feature. Next up: three optional deep-dives to pick from, and a few minutes of due flashcards keeps chapter 1's Kotlin and Git fresh while you branch out.
Finish this section to unlock.
+100 XP
Take this if you're aiming to share business logic with an iOS codebase someday: it builds on the coroutines and Flow patterns from step 7 to explain what stays platform-specific and what doesn't.
If your app needs to bring users back after it's closed, take this: it goes deeper on the notification handling step 4 only sketched, using Firebase Cloud Messaging to actually deliver the message.
Pick this up if you're building toward subscriptions or in-app purchases: Play Billing's lifecycle states are what the architecture patterns from step 8 need to model correctly in a paid app.
You can add multiplatform code sharing, push notifications, and paid features to an app, whenever a project actually calls for them. Next up: making sure it's tested, locked down, and ready for other people's phones.
Finish this section to unlock.
+100 XP
An app with no tests is a liability the moment you add a second screen; this is JUnit and Espresso applied to everything steps 4 through 8 just built, so regressions get caught before a reviewer does.
Before real users hand your app their data, this covers what step 4's networking and storage layer needs on top: Android's Keystore, encrypted storage, and the OWASP Mobile Top 10 stand between a careless bug and a breach.
Everything up to here has been building toward this: signing the app, writing its store listing, and shipping the tested, secured build from steps 12 and 13 to real users on Google Play.
You've taken an app from a blank Kotlin file to a signed, tested build published on Google Play: that's exactly what the Android Developer badge marks.
Finish this section to unlock.
+100 XP
Finish every required step, at least 70% of them genuinely done (not skipped), to earn this badge and 500 XP.