Skip to content

This roadmap for android developers can guide you from the very basics to advanced level and help you improve your skills.

Notifications You must be signed in to change notification settings

MahmoudElshahatt/Android-Roadmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– Android Roadmap

Android Cover A roadmap for android developers that can guide you from the very basics of the track and help you improve your skills.

First of all, we have to talk about

πŸ“— Why should you learn Android development?

Android Devices With over 3 billion Android devices all over the world including: ( πŸ“± Smartphones, πŸ“Ί TVs, ⌚ Smartwatches, πŸš— Cars and more) in the hands of 2.5 billion users, it has become essential for companies to develop Android apps for their services.

Before starting with Android you have to know about Git and GitHub. (If you know about them you can skip this section.)

Git and GitHub:

Android Github

First,what is the difference between Git and GitHub? See this

You can learn about them from these resources:

  1. This playlist. (Recommended)

    Use this file that has the most common commands in git.

  2. This course.

Use this file that NOW,you need to know how to use Git and GitHub with Android Studio which provides app builders with an integrated development environment (IDE) optimized for Android apps. Watch this video

You are ready to start your journey with Android but before starting with Android you have to learn a programming language and because it's Android, we recommend you start learning with Java.


But.. Why Java? πŸ€”

  • Most the open-source projects are written in Java.
  • Java has been the preferred language for Android development until May 2019
  • Most of the Stack Overflow answers are written in Java
  • Most Android libraries are written in Java, and to be able to use them, you have to understand Java.

Learning Java:

Learning Java

πŸ“Ž Resources:

Arabic:

  1. Java baiscs (Recommended)
  2. OOP
  3. Java baiscs + OOP

English (Udacity):

  1. Java basics
  2. OOP

Before moving to the next level you have to make sure that you understand these topics:

  • Basic syntax
  • Conditions (if - switch)
  • Looping (for - while - do While)
  • Arrays & Collections
  • Exception handling (try-catch)
  • OOP
    • Encapsulation
    • Abstraction
    • Inheritance
    • Polymorphism
  • πŸ“‹ Build a simple project with Java

Algorithms

books:

Data Structures

or

You are all set up, now πŸ€“


Android basics:

Now you are ready to start programming real Android apps for that you will need a good IDE to help you in your journey and I recommend you use Android studio.

Android Android

We will start with the basics of the basics πŸ˜…

πŸ“Ž Resources:

Arabic:

English (Udacity): (Recommended)

  1. User Interface
  2. User Input
  3. Multiscreen

Then you will learn about making a list of views using Recyclerview

πŸ“Ž Resources:

Arabic:

English:

Then you will need to learn how to reuse portions of your app's UI by using fragments and navigation component.

πŸ“Ž Resources:

Before moving to the next level you have to make sure that you understand these topics:

  • Design responsive android UI using XML
  • Accepting user inputs
  • Developing multi-screen applications
  • Making big lists of data without using many resources using recyclerview
  • Fragments
  • Navigation component
    • Using the Navigation graph
    • Navigating between fragments
    • Using Drawer layout and Bottom Navigation
    • Using safe args
  • πŸ“‹ Build a simple android application to apply your knowledge

Kotlin:

After building a strong foundation with java and XML basics we will start building on it with the knowledge we will really use in our future applications.

Kotlin

So... Why Kotlin?

After Google I/O 2017 where Google announced first-class support for Kotlin on Android, Kotlin has become used by more and more Android developers and now it's used by over 60% of professional Android developers, for that each Android developer must learn it. Learn More

We will start by learning the basics of the language.

πŸ“Ž Resources:

Arabic:

English:

Before moving to the next level you have to make sure that you understand these topics:

  • The basic syntax of Kotlin
  • Null safety concept
  • Looping
  • Functions and different types of them inline, infix, extension, etc.
  • Types in Kotlin
  • Companion objects
  • Higher-order functions
  • Operations on collections filter, map etc.
  • Generics
  • πŸ“‹ Build a console app to apply the skills you have learned in this level

Android Intermediate:

Now we will start writing Android apps using the skills we have learned in the previous levels as we will use Kotlin we've just learned with the Android skills we have built before to make much powerful and usable Android apps.

Android Inter

πŸ“Ž Resources:

Check this course from Udaicty it has covered most of the topics you have to learn at this level, we just have some recommendations:

  • Before advancing to lesson 5 try to search about Design Patterns and their different types.
  • Before advancing to lesson 6 we recommend:
  • Each topic in this course is very important so you have to make sure you understand them well.
  • Try to follow each lesson by answering its QUIZs and make projects to apply what you have learned.

Before moving to the next level you have to make sure that you understand these topics:

  • Developing Android apps using Kotlin.
  • Good understanding of Android lifecycle.
  • Architecture Patterns MVC, MVP, MVVM (Watch this).
  • SQLite basics and Room database.
  • Connect your app to the internet using Retrofit.
  • Multithreading using Coroutines.
  • Design adaptive layouts depending on the settings of the user's device.
  • πŸ“‹ Build applications to apply the knowledge you have learned in each topic

Advanced:

Hey, Android developer. At this level, you will just learn more and more topics that will help you make much better Android applications with better code using the most modern methods to develop them.

Android Advanced

Topics to learn:

  • Watch this Udacity course which discussing these topics:
    • Notifications.
    • Custom views and Canvas.
    • Making animations.
    • Testing.
    • Dependency Injection.
  • MVI:
  • Services.
  • Broadcast reciever.
  • Content provider.
  • Multi-Module applications.
  • Live Data.
  • Firebase auth.
  • Cloud Firestore.

Very Important Topics

Retrofit

Dependency injection with Hilt

Testing

Jetpack Compose

Clean Archticture


What to do Next? πŸ€”

once you stop learning you start dying

You have to continue learning more and more and try to be always up-to-date with the new technologies coming to the field.

You can follow Android Developers YT Channel and watch their MAD Skills series to stay up-to-date.

You can also check This Site for very important books in Android and Kotlin and other awesome stuff.

Feel free to contact us:

About

This roadmap for android developers can guide you from the very basics to advanced level and help you improve your skills.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published