Android Roadmap¶
- Roadmap: https://roadmap.sh/android
1. Pick a Language¶
- 1.1 Kotlin
- 1.2 Java
2. The Fundamentals¶
- 2.1 Development IDE
- 2.2 Basics of Kotlin
- 2.3 Basics of OOP
- 2.4 Data Structures and Algorithms
- 2.5 What is and how to use Gradle?
- 2.6 Create a Basic Hello World App
3. Version Control¶
- 3.1 Git
3.2 VCS Hosting¶
- 3.2.1 GitHub
- 3.2.2 Bitbucket
- 3.2.3 GitLab
4. App Components¶
4.1 Services¶
- 4.1.1 Content Provider
- 4.1.2 Broadcast Receiver
4.2 Activity¶
- 4.2.1 Activity LifeCycle
- 4.2.2 State Changes
- 4.2.3 Tasks & Backstack
4.3 Intent¶
- 4.3.1 Implicit Intents
- 4.3.2 Explicit Intents
- 4.3.3 Intent Filters
5. Interface & Navigation¶
5.1 Jetpack Compose¶
5.2 Layouts¶
- 5.2.1 Frame
- 5.2.2 Linear
- 5.2.3 Relative
- 5.2.4 Constraint
- 5.2.5 RecycleView
5.3 Elements¶
- 5.3.1 TextView
- 5.3.2 Dialogs
- 5.3.3 ImageView
- 5.3.4 Drawer
- 5.3.5 Toast
- 5.3.6 Buttons
- 5.3.7 Tabs
- 5.3.8 ListView
- 5.3.9 Fragments
- 5.3.10 Bottom Sheet
- 5.3.11 EditText
- 5.3.12 Animations
5.4 App Shortcuts¶
5.5 Navigation Components¶
6. Design & Architecture¶
6.1 Architectural Patterns¶
- 6.1.1 MVI
- 6.1.2 MVVM
- 6.1.3 MVP
- 6.1.4 MVC
6.2 Design Patterns¶
- 6.2.1 Repository Pattern
- 6.2.2 Builder Pattern
- 6.2.3 Factory Pattern
- 6.2.4 Observer Pattern
6.3 Dependency Injection¶
- 6.3.1 Dagger
- 6.3.2 Hilt
- 6.3.3 Koin
- 6.3.4 Kodein
6.4 Flow¶
- 6.4.1 RxKotlin
- 6.4.2 RxJava
- 6.4.3 LiveData
7. Storage¶
- 7.1 Shared Preferences
- 7.2 DataStore
- 7.3 Room Database
- 7.4 File System
8. Network¶
- 8.1 Retrofit
- 8.2 OkHttp
- 8.3 Apollo-Android
9. Asynchronism¶
- 9.1 Coroutines
- 9.2 Threads
- 9.3 RxJava
- 9.4 RxKotlin
- 9.5 WorkManager
10. Common Services¶
- 10.1 Authentication
- 10.2 Crashlytics
- 10.3 Remote Config
- 10.4 Cloud Messaging
- 10.5 FireStore
- 10.6 Firebase
- 10.7 Google Admob
- 10.8 Google Play Services
- 10.9 Google Maps
11. Linting¶
- 11.1 Ktlint
- 11.2 Detekt
12. Debugging¶
- 12.1 Timber
- 12.2 Leak Canary
- 12.3 Chucker
- 12.4 Jetpack Benchmark
13. Testing¶
- 13.1 Espresso
- 13.2 JUnit
14. Distribution¶
- 14.1 Signed APK
14.2 Ways to Distribute¶
- 14.2.1 Firebase Distribution
- 14.2.2 Google Playstore