Android is a mobile operating system based on a modified version of the Linux kernel and other open source software. It is designed primarily for touchscreen mobile devices such as smartphones and tablets. This roadmap would help you as a developer to get started on learning about Android software development.
To make your journey easier, pick a path
Java
Mark as done
Done
Java
Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. Learn more about Java from the resources below.Also, you can start your Java programming journey with the Java Roadmap.
What is Java?
Java Tutorial for Beginners
Learn Java In Depth
Java Roadmap
Kotlin
Mark as done
Done
Kotlin
Kotlin is a free, open source, cross-platform, statically typed, general-purpose programming language with type inference. Learn more about this from the resources below.
The Complete Vanilla Kotlin Course
Kotlin Course Tutorial for Beginners
Kotlin Tutorial
Learn Kotlin Programming
Flutter
Mark as done
Done
Flutter
Flutter is an open source framework for building beautiful, natively compiled, multi-platform applications from a single codebase. Learn more about this from the resources below.
Introduction to Flutter Course
Flutter Crash Course for Beginners
Flutter Tutorial
How to Install Android Studio
Mark as done
Done
How to Install Android Studio
This is one of the most important tools needed for your Android journey and you can learn how to Install Android Studio using the resources below on this.
Install Android Studio
How to install Android Studio
Android Studio Tutorial
Basic of OOP
Mark as done
Done
Basic of OOP
Take a dive into the Basics of Object-Oriented Programming. See the resources below.
Intro to Object-Oriented Programming
Basic Object Oriented Programming Concepts
Learn Object-Oriented Programming in 7 Minutes optional
Data Structures and Algorithms
Mark as done
Done
Data Structures and Algorithms
A data structure is a named location that can be used to store and organize data. An algorithm is a collection of steps to solve a particular problem. Learn more about these concepts from the resources below.
Data Structures and Algorithm Course
Data Structures and Algorithm for Beginners
Data Structures and Algorithm Tutorial optional
Data Structures and Algorithm Tunga Bootcamp optional
Gradle
Mark as done
Done
Gradle
Gradle is a build automation tool for multi-language software development. Learn more from the resources below.
Gradle Official Webpage
Get Started with Gradle
Gradle Tutorial for Beginners optional
Uses of Version Control Systems
Mark as done
Done
Uses of Version Control Systems
Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. See the resources below.
Version Control System Introduction
Importance of Version Control Systems for Developers
Definition and Benefits of Version Control System
Using Git
Mark as done
Done
Using Git
In this section, you will take an extensive look at Git, which is a free and open source distributed version control system. Get started with the resources below.
Git Tutorial for Beginners
Learn the Basics of Git
Version Control with Git
Git Tutorial for Beginners
GitHub
Mark as done
Done
GitHub
GitHub is the largest online software development platform used for storing, tracking, and collaborating on software projects. Learn more from the resources below.
GitHub Learning Lab
How to use GitHub
Git and GitHub Tutorial for Beginners optional
What is GitHub and How Do You Use It? optional
BitBucket
Mark as done
Done
BitBucket
Bitbucket is a Git-based source code repository hosting service. Learn more about this from the resources below.
BitBucket Tutorial
How to use Bitbucket
Introduction to Git and Bitbucket optional
GitLab
Mark as done
Done
GitLab
GitLab is a single application that spans the entire software development lifecycle. Learn more about this from the resources below.
GitLab Tutorial for Beginners
Introduction to Git and GitLab
GitLab Tutorial
Learn GitLab in 3 Hours optional
Content Providers in Android
Mark as done
Done
Content Providers in Android
Content providers manage access to a central repository of data. They act as a medium for various applications to communicate with each other. Learn more about this concept from the resources below.
Introduction to Android Content Provider
Content Providers in Android
Content Provider Basics
Application Components
Mark as done
Done
Application Components
Application components are the essential building blocks of an Android application. Learn more about this concept from the resources below.
Android Application Components with Implementation and Examples
Main Components of Android Application
Application Components Tutorial
Android Intent
Mark as done
Done
Android Intent
Android Intent can be defined as a simple message object which is used to communicate from one activity to another. Learn more about this concept from the resources below.
What is Intent in Android?
Android Intents - Tutorial
Intents in Android
Fragments in Android
Mark as done
Done
Fragments in Android
A Fragment represents a reusable portion of your app's UI. Learn more about this concept from the resources below.
Introduction to Fragments in Android Application
Android Fundamentals: Fragments
How to build a fragments App
Creating and using fragment s
Context in android
Mark as done
Done
Context in android
Context is an abstract class whose implementation is provided by the Android system. Learn more about this concept from the resources below.
Understanding Context in Android
What does context mean in Android
What is Context on Android
Activity Lifecycle in Android
Mark as done
Done
Activity Lifecycle in Android
Activity Life Cycle is the steps an activity progresses through on an Android application as the user (and OS) interacts with it. Learn more about this concept from the resources below.
The Activity LifeCycle
The Activity LifeCycle Explained
Understanding and Implementing the Activity Lifecycle
Activities in Android
Mark as done
Done
Activities in Android
An Android activity is one screen of the Android app's user interface. Learn more about this concept from the resources below.
Introduction to Activities
What is the use of Activity in Android
Android Activity
Debugging in Android
Mark as done
Done
Debugging in Android
Debugging is the process of finding and fixing errors (bugs) or unexpected behavior in your code. Learn more about this concept from the resources below.
Debugging in Android Studio
Debugging in Android
How to debug code in Android Studio
Managed Configurations on Android
Mark as done
Done
Managed Configurations on Android
Managed configurations are built-in capabilities that allow admins to remotely specify settings for apps. Learn more about this concept from the resources below.
Understanding Managed App Configuration
Set Up Managed Configuration
Apps with Managed Configurations optional
3rd Party Libraries in Android
Mark as done
Done
3rd Party Libraries in Android
3rd Party Libraries are reusable resources in Android Applications. Learn more about this concept from the resources below.
Android Third-Party Libraries
Must Have Libraries for Android
Third-Party Dependencies Every Android Developer Should Know optional
Room
Mark as done
Done
Room
Room provides an abstract layer over the SQLite Database to save and perform the operations on persistent data locally. It is one of the Jetpack Architecture Components in Android. Learn more about this component from the resources below.
Room Guide
Overview of Room in Android Architecture Components
Using Room Database
Practical Lessons on Room Database optional
WorkManager
Mark as done
Done
WorkManager
Work Manager is one of the Jetpack Android Architecture Components. It is a library that runs deferrable background work when the work’s constraints are satisfied. Learn more about this library from the resources below.
Introducing Work Manager
Integrating Work Manager in Android
Work Manager: Working in the Background
Understanding WorkManager in Android
Livedata
Mark as done
Done
Livedata
LiveData is an observable data holder class. It is one of the Jetpack Android Architecture Components. Learn more about this component from the resources below.
LiveData Overview
LiveData Tutorial for Android
LiveData Explained
Understanding LiveData Made Simple
Navigation Component
Mark as done
Done
Navigation Component
Navigation component helps implement navigation, from simple button clicks to more complex patterns. It is also one of the Jetpack Android Architecture Components. Learn more about this component from the resources below.
An Explanation of Navigation Architecture Component optional
Data Binding Library
Mark as done
Done
Data Binding Library
Data Binding Library works seamlessly with the Architecture Components to further simplify the development of your UI. Learn more about this library from the resources below.
Android Data Binding: Getting Started
Data Binding Library
Data Binding in Android: A Tutorial with Examples
How to Bind Data in Android
Using Data Binding in Android
Concurrency in Android
Mark as done
Done
Concurrency in Android
Learn the concept of Concurrency in Android with the aid of the resources provided below and the tools listed in the subsection.
Concurrency in Android
Asynchronous Programming For Android - Concurrency optional
Rxjava
Meet RxJava - Reactive Programming
RxJava for Beginners - Full Course
Reasons for using RxJava in Android
Kotlin Coroutines
Kotlin Couroutines for Android
Kotlin Couroutine Tutorial
Kotlin Couroutines Beginner Lessons with Examples
Dependency Injection in Android
Mark as done
Done
Dependency Injection in Android
Dependency injection is a programming technique that makes a class independent of its dependencies. Learn more about this from the resources below and find the frameworks for DI in the subsections.
Android Dependency Injection - Introduction
Understanding Dependency Injection in Android
Dependency Injection Tutorial optional
Hilt
Injection Dependency with Hilt
Using Hilt Dependency Injection Framework
Dependency Injection with Hilt optional
Koin
Android Dependency Injection with Koin
Implementing Dependency Injection with Koin
Understanding the Koin Framework regarding DI
Dagger 2
Dagger 2 Tutorial
Tutorial for Android - Using Dagger 2 for DI
Using Dagger in Android Apps optional
Threading in Android
Mark as done
Done
Threading in Android
A Thread is a concurrent unit of execution in a program. Learn more about this from the resources below.
Android Threading: All You Need To Know
How Does Threading Work in Android
Threading in Android optional
Multithreading in Android
Mark as done
Done
Multithreading in Android
Multi-threading can be described as the process of making use of two or more 'threads' of execution, working together to accomplish a task. Learn more about this from the resources below.
Multithreading in Android with Examples
How to use multiple threads in Android
Introduction into Multithreading for Android Developers
Android Multithreading Masterclass optional
Security in Android
Mark as done
Done
Security in Android
Android has built-in security features that significantly reduce the frequency and impact of application security issues. Learn more about this from the resources below.
Securing Network Data Tutorial for Android
Encryption Tutorial for Android
Data Privacy for Android
JUnit
Mark as done
Done
JUnit
JUnit is an open-source framework, which is used for writing and executing unit tests in Java and android applications. Learn more about this from the resources below.
Unit testing in Android using JUnit
JUnit 5 Testing in Android
Android JUnit Test Examples
Espresso
Mark as done
Done
Espresso
Espresso is an open-source, android user interface (UI) testing framework. Learn more about this from the resources below.
Expresso
Android User Interface Testing with Expresso
UI Testing with Expresso
Android Studio - Testing UI with Expresso
Test Your Skills
Mark as done
Done
Test Your Skills
There is no better way to consolidate your knowledge besides testing yourself. So, if you have made it this far, well done! Here's a chance to see how much you have learned. Take an Android test below.