Android
roadmap.sh: https://roadmap.sh/android
Suggested path through the Android nodes. Each node links to its lesson when written.
Nodes
Languages & fundamentals
- Basics of Kotlin
- Kotlin
- Java
- Basics of OOP
- Functional programming
- Coroutines
- Flow
- RxJava
Tooling & environment
- Development IDE (Android Studio)
- Gradle build system
- Android SDK & SDK Manager
- Emulator & AVD Manager
- ADB (Android Debug Bridge)
- Version control with Git
- GitHub
- GitLab
App components
- App components overview
- Activity
- Activity lifecycle
- Fragments
- Services
- Broadcast receivers
- Content providers
- Intents & intent filters
- App shortcuts
- App manifest
- Permissions
UI with Views
- XML layouts
- ConstraintLayout
- RecyclerView
- ImageView
- ViewBinding
- DataBinding
- Material Design components
UI with Jetpack Compose
- Composable functions
- Column & Row
- Box
- Button
- Card
- Image
- Icon
- Dialog
- BottomSheet
- State & recomposition
- Theming & Material 3
Architecture
- Design & architecture principles
- MVC
- MVP
- MVVM
- MVI
- Repository pattern
- Observer pattern
- Factory pattern
- Builder pattern
- Clean architecture
Jetpack & lifecycle
- ViewModel
- LiveData
- Lifecycle-aware components
- Navigation component
- WorkManager
- Paging
Data & persistence
- SharedPreferences
- DataStore
- Room database
- File system
- SQLite
Networking & async
- Networking (Retrofit / OkHttp)
- REST APIs
- JSON parsing (Moshi / Gson)
- Asynchronism
- Authentication
- Caching
Dependency injection
- Dependency injection concepts
- Hilt
- Dagger
- Koin
Firebase & services
- Firebase overview
- Firestore
- Cloud Messaging (FCM)
- Crashlytics
- Remote Config
- Google Play Services
- Google Maps
- Google AdMob
Testing & quality
- Debugging
- JUnit
- Espresso
- Linting
- ktlint
- detekt
- LeakCanary
Distribution
- Google Play Store
- App signing
- App Bundles
- CI/CD for Android
Resources
See resources.md.
Project ideas
- Build an offline-first notes app using Jetpack Compose, Room, and a Repository-pattern MVVM architecture.
- Create a weather app that pulls a REST API with Retrofit + Coroutines, caches with DataStore, and shows a Compose UI.
- Ship a small habit-tracker to the Play Store with WorkManager reminders, Firebase Crashlytics, and a signed App Bundle.