A Roadmap To Become A Better Android Developer
This article is for:
- Anyone who wants to learn Android Development but has no idea where to start.
- Also for anyone who has already started on Android Development but wants to become better.
The goal is to provide a proper roadmap to becoming a better Android Developer. If this roadmap helps you in becoming a better Android Developer, then my mission will be accomplished.
I am Amit Shekhar, Co-Founder @ Outcome School • IIT 2010–14 • I have taught and mentored many developers, and their efforts landed them high-paying tech jobs, helped many tech companies in solving their unique problems, and created many open-source libraries being used by top companies. I am passionate about sharing knowledge through open-source, blogs, and videos.
Sharing the knowledge, sharing the love
Prepare yourself for Android Interview: Android Interview Questions
Roadmap for Android Developer
You can find the updated version here: Android Developer Roadmap
Programming
- Java
- Kotlin
Android Studio
- Android Studio IDE Overview
- Project Structure
- Java/Kotlin
- XML
- .gradle files
Android Component
- Activity
- Activity Lifecycle
- Tasks & Back Stack
- Service
- Broadcast Receiver
- Content Provider
Intents
- Types of Intent
- Implicit
- Explicit
- Intent Filter
Static User Interface
- View: Button, ImageView, TextView, EditText, etc
- ViewGroup: LinearLayout, RelativeLayout, FrameLayout, ConstraintLayout
Dynamic User Interface
- RecyclerView
- ViewPager
- Spinner
CustomView
- Canvas
- Bitmap
- Paint
UI Resources
- Drawables
- String
- Styles
Fragments
- Fragment Lifecycle
- Fragment Manager
Support User Interface
- ProgressBar
- Dialogs
- Toast & Snackbar
Storage
- Shared Preferences
- File Systems
- Database
- RoomDB
Build
- Gradle
- Debug / Release Configuration
Threading
- Thread
- Handler/Looper
- ThreadPoolExecutor
- RxJava
- Coroutines/Flow
- WorkManager
Debugging
- Memory profiling
- Logging
- Systrace
- Exceptions
- Error Handling
Memory Leak
- Detecting and Fixing Memory Leaks
- Context
3rd Party Library
Image Loading
- Glide
- Picasso
Dependency Injection
- Dagger
Networking
- Fast Android Networking Library
- Retrofit
MultiThreading
- RxJava
- Coroutines
- Kotlin Flow API
Coroutines
- coroutines
- suspend
- launch, async-await, withContext
- dispatchers
- scope, context, job
- lifecycleScope, viewModelScope, GlobalScope
- suspendCoroutine, suspendCancellableCoroutine
- coroutineScope, supervisorScope
You can learn these topics here: Learn-Kotlin-Coroutines
Kotlin Flow API
- Flow Builder, Operator, Collector
- flowOn, dispatchers
- Operators such as filter, map, zip, flatMapConcat, retry, debounce, distinctUntilChanged, flatMapLatest
- Terminal operators
- StateFlow, SharedFlow, callbackFlow, channelFlow
You can learn these topics here: Learn-Kotlin-Flow
Data Format
- JSON: GSON, Moshi
- Flat Buffer
- Protocol Buffer
Android Jetpack
Foundation Components
- AppCompat
- Android KTX
- Multidex
Architecture Components
- LiveData
- ViewModel
- DataBinding
- Paging
- Work Manager
- Navigation
Behaviour Components
- Download Manager
- Media Playback
- Notification
- Permissions
- Preference
- Sharing
- Slice
UI Component
- Animation & Transition
- Android Auto
- Emoji
- Palette
- Android TV
- Android Wear
Compose
- State: remember, rememberSaveable, MutableState
- Recomposition
- State hoisting
- Side-effects
- Modifier
- Theme
- Layout, List
- Gestures, Animation
- CompositionLocal
Common Design Patterns and Architecture
- Builder Pattern
- Singleton
- Dependency Injection
- Factory
- Observer
- Repository
- MVVM
- MVP
- MVI
- Clean architecture
Unit Testing
- Local Unit Testing
- Instrumentation Testing
Firebase
- FCM
- Crashlytics
- Analytics
- Remote Config
- App Indexing
- Dynamic Link
Security
- Encrypt / Decrypt
- Proguard
- R8
App Release
- .keystore file
- App Bundle
- Playstore
Keep Learning and Improving
Prepare yourself for Android Interview: Android Interview Questions
That’s it for now.
Further, Always be updated with the new technology in Android. If you miss it, you simply miss it. The best way to be always updated is to follow some Twitter accounts.
I post updates on Twitter about all the new things in Android. So, follow me on Twitter.
Thanks
Amit Shekhar
Co-Founder @ Outcome School
Also, let’s become friends on Linkedin, Github, Quora, and Facebook.
Clap, share if you like it and follow me for the updates.