A Roadmap To Become A Better Android Developer
By: Amit Shekhar
Tags: Android Development, Android App Development, Android, AndroidDev, Android Apps

Let’s become a better Android Developer.

This article is for:

Anyone who wants to learn Android Development but have 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 become a better Android Developer. If this roadmap helps you in becoming a better Android Developer, then my mission will be accomplished.

A complete guide for learning Android App development

Roadmap for Android Developer

Programming Languages — Java

Why Java? — To get the most out of the Kotlin, it is good to have the basic knowledge of Java.

If you know the basics of Java, good to go ahead. Else go here, learn and come back.

Installing Android Studio IDE and Getting Started with Android

What is Android and How it works?

Install Android Studio

Components of Android

What is Activity?

UI Design — User Interface

What is View and how it works?

What is the Intent?

Activity Lifecycle with Example Use Cases

Dialog UI

Shared Preferences

Even though you kill the app and reopen it, the data persists as the data can be persisted by using the Shared Preferences.

RecyclerView

To build the UI showing the list of items, the Android App uses RecyclerView.

Apps like WhatsApp use RecyclerView to build chat-screen.

Getting Started with Kotlin

Google has officially declared Kotlin as a first-class language for Android. It is important to learn Kotlin now.

Kotlin is concise, null-safe and interoperable.

Start with the very basics of Kotlin.

Convert your Java code into Kotlin using the basic knowledge of Kotlin.

Singleton, Process, and Thread

Apps like WhatsApp take advantage of thread to make the app run faster and give you the best user experience.

These topics will help you during the interview process too.

Database Implementation

WhatsApp uses a database to store your messages, even if you are not connected to the internet, you can see all the messages which you had sent or received.

Most of the applications use Databases to store data.

Permissions and Image Loading

WhatsApp asks you the contact permission.

For example, Instagram loads the images in the feed using the Image Loading libraries like Glide.

Work Manager

Using WorkManager, NewsApp can fetch the data even when you are sleeping and show you the fresh news when you open the app in the morning even if you are not connected to the Internet at that particular time.

Notification

Almost all the Android App uses Notification to notify you about any updates.

Networking

Apps like Instagram, WhatsApp make network calls to fetch data from the server.

For getting started with Networking, make the Network call using the Fast-Android-Networking.

ViewPager and Fragment

WhatsApp uses ViewPager to let users scroll between chats fragment, status fragment, call fragment.

Activity contains Fragments.

Debugging and APK Release

Debugging — It is a learning opportunity for developers. It is one of the most important skills of any developer.

APK Release — In the end, you release your app on PlayStore and reach your users easily.

Essentials

What is Context?

Object-Oriented Programming — OOP

Class Design and Structure

File System, Read, Write, Assets read write

ConstraintLayout in Android

Canvas API in Android

Custom View

Ride-Sharing Uber Lyft Android App

Learn about Google Maps, Location, Animation, and build Ride-Sharing App

Implement Permissions, fetch current location and show nearby cabs

Pickup and drop location Using Places API

Book a cab and Driver Pickup path

Show Driver current location during pickup, Car Arrival

Trip Starts, Show Trip Path, Current location, Trip Ends

Implement Take Next Ride

Milestone 1 - After reaching this milestone, you will be able to easily:

Get the first internship in Android. Start converting ideas into Android App. Get your first job in Android. Publish your app on Google PlayStore.

Learn all the above topics in our Android Development Online Course for Beginners. You will learn all the topics by building the two apps.

Now, let’s start for the next milestone

Dagger

When projects become bigger, you will need to know about Dependency Management and use Dagger in your project to manage dependencies.

Companies like Google use Dagger in their Android Applications.

Learn to design your own dependency management framework.

Learn Kotlin

Revisit the basics of Kotlin.

Start learning the Kotlin language-specific features.

Learn Kotlin advanced features.

Nowadays, the new projects at most of the companies are getting started with Kotlin. Also, the older Java projects are getting migrated into the Kotlin.

This is the high time to Learn Kotlin.

Architectural Components

Architecture components like LiveData, LifeCycle, ViewModel help in managing our UI component lifecycle and handling data persistence.

Challenges of lifecycle handling, Activity rotation problem

Learn to create a Lifecycle Aware Component

Sharing a ViewModel

RxJava

RxJava has become the single most important skill for Android development.

Almost every app uses RxJava to do multithreading.

RxJava makes developer’s life easy.

How does threading work in Android?

Also asked in most of the Interview.

Learn with practical examples.

Database Design

Apps like WhatsApp use databases to store your data at Android end and design the database to make the query faster so that your app runs faster.

Nowadays, we use Room which is the library created by Google. Room provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.

Learn about the Relational database concepts

Normalization and many-to-many relationships

Learn about the TypeConvertors, Migration in Room Database.

Networking

Android Apps like Twitter, Instagram, Facebook uses Networking libraries like Retrofit to fetch the data.

Nowadays, Retrofit is one of the prominent libraries to make Network calls.

Learn to create GET, POST request and handle complex data Model

There are many concepts associated with networking which you must know such as multipart for uploading images, interceptors.

MVVM and Instagram project

Learn to build Instagram like Login, Feed, Post Creation and Profile page using the MVVM Architecture with Architecture components, LiveData, ViewModel, ViewModelFactory, Dagger, Retrofit, RxJava.

Learn about MVC, MVP, and MVVM architecture.

How does the ViewModel, ViewModelProviders, ViewModelProviderFactory work?

Build Features like Capture image through Camera, Pick image through Gallery

Image Upload using Multipart.

Principles of lifecycle aware RecyclerView

Implementation of Lifecycle Aware RecyclerView ViewHolder: Generally developers miss this. Good developers consider all the edge-cases while developing Android Applications.

Implement Pagination feature using RxJava

Unit Testing

Testing is a software development process in which we do so many different things to find bugs. Less the number of bugs, the more the chances of performing well in production for that particular software.

It forces you to follow architecture in the codebase, helps in fast failure detection in the development cycle, and helps you in safer code refactoring, letting you optimize code without worrying about regressions.

Kotlin Coroutines

What exactly are Coroutines?

Need for the solution which Kotlin Coroutines provide

Dispatchers, suspend, launch, async

What are scopes in Kotlin Coroutines?

Exception handling in Kotlin Coroutines

Android Build System and Memory Management

Knowing about the Android Build system, Memory Management is very important for Android Developers.

It will help you in building the Android apps which will consume less memory

Also in cracking the Interviews of top companies.

Android Multithreading and Handler-Looper

Knowing about the Multithreading will help you in doing tasks in the background efficiently.

Android Looper, Handler, and HandlerThread are among the building blocks of Android OS. So this is one of the most asked topics during the interview.

Multithreading and Handler-Looper are important for interviews.

Networking Caching Interceptor Image Loading

Knowing the internals of a 3rd party library is important to get the most out of it.

Also, these concepts will give you the upper hand over other candidates when it comes to interviews.

System Design(Mobile): WhatsApp and Location Sharing App

We generally miss a few edge-cases during development. Learn to design WhatsApp considering the edge-cases.

Useful during the design round in the interview.

Milestone 2 - After reaching this milestone, you will be able to easily:

Identify yourself in the top 5% of Android Developers. Crack interviews of top companies. Build the Android App with robust architecture. Land jobs at top tech companies.

Learn all the above topics in our Android Development Online Course for Professionals. You will learn all the topics by building these screens of our Instagram and News Apps: