A Roadmap To Become A Better Android Developer

Amit Shekhar
MindOrks
Published in
3 min readAug 13, 2018

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.

--

--

Amit Shekhar
MindOrks

Co-Founder @ Outcome School | Coder | Teacher | Mentor | Open Source | IIT 2010-14 | Android | Machine Learning | Backend