Code Monkey home page Code Monkey logo

android-roadmap's Introduction

๐Ÿš€ Android-Roadmap

Hits

This road-map for android development that can help you to improve your skills with very recommended articles and other resources.

Before we start providing you with resources..

๐ŸŒ€ What about android as operating system(OS):

Android is a mobile operating system based on a modified version of the Linux kernel and other open source software.
Designed for:

  • Smartphones & Tablets ๐Ÿ“ฑ
  • Tv ๐Ÿ“บ
  • Wear OS โŒš
  • Android things ๐Ÿ”ฎ

First of all we should learn a programming language from [java or Kotlin] and XML [for building the user interface(UI)]

I recommend you to start with java as a programming language.. why? ๐Ÿ˜…

  • In my opinion most of apps built with java and if you worked somewhere at a company , how do you refactor or add new features to this app that built with java!
  • Most of open source was written with java.
  • There are much more Java tutorials and almost every solution for Android problems on pages like Stack Overflow from the last years have been written in Java.
  • Understanding the syntax of a language is one thing, but to actually build apps you have to learn how to use the different framework and library APIs. You have to learn what classes you have to use and which methods you have to call in the different phases of your app. And for this you need practice and a lot of examples you can refer to.

Don't worry Java is not going to be obsolete ๐Ÿ’ช

Learn java: (Due to 3 or 4 weeks)

๐Ÿ“‹ Resources: choose only one resource (Arabic or english)

Arabic
Abdullah Almehmadi:

  1. Java 101
  2. Java 102
  3. Java 103
  4. Java 104

English Crash course
Check this

Before moving to the next level be sure that you have a good knowledge about:

  • OOP.
  • Looping (for - while - doWhile).
  • Make a decision (if else - switch).
  • Exception handling (try catch).
  • Casting, static, final, generics.
  • Using interface and abstraction and Anonynmous object.
  • ๐Ÿ‘‰ Build a simple project with java like ( Banking or Hotel or SuperMarket system).

Now you are ready to start with android

Basic level:

Now you are ready to build user interface using xml and write some java code at android studio.

๐Ÿ“‹ Resources:

English
Udacity:

  1. Android Basics: User Interface โ€‹ (due to 1 week)
    https://mena.udacity.com/course/android-basics-user-interface--ud834

  2. Android Basics: User Input โ€‹ (due to 2 weeks)
    https://mena.udacity.com/course/android-basics-user-input--ud836

  3. Android Basics: Multiscreen Appsโ€‹ โ€‹ (due to 1 Month)
    https://mena.udacity.com/course/android-basics-multiscreen-apps--ud839

After you have learned to use Relative and Linear layout.. there is another amazing thing called Constraint layout to build a responsive layout
check this playlist

Go a head and build a project and use the tools that you learned in basic level

After that you are ready to work with database and networking so..

Database in android:

In android world.. the database commes from different sources (Local & Remote).

Local: We use shared preference and room database(based on sqllite).

Remote: We can use firebase or some thing called API.

๐Ÿ‘‰ Don't Worry right now about that, we 'll provide you with useful resources to learn that

Intermediate part 1:

Before that you should learn an important view called recycle view.. Why?
Most of android apps need to display a list of any type of data for users so the best way to handle that using recycler view.

๐Ÿ“‹ Resources:

  1. check this tutorial

What is Database generally

๐Ÿ“‹ Resources:

  1. simple tutorial

then start with learning sqllite commands before implement it with android studio:

๐Ÿ“‹ Resources:

  1. ProgrammingKnowledge: check this

Additional but very useful:
To master sqllite check this Sqllite fully tutorial

Learn how to store data into your local database of your application by learning room database.

๐Ÿ“‹ Resources:

  1. TODO Add a room db resources.

Intermediate part 2:

You should learn networking basics: (working with a remotely data)

๐Ÿ“‹ Resources:

Android Basics: Networking โ€‹ (due to 5 weeks)

  1. check this

So now you need to learn about recycler view, fargments, notification, room database and working with some libraries and more..

๐Ÿ“‹ Resources:

Udacity:
2. check this

Then you should learn the best libarary in android development that working with APIs called (Retrofit)

๐Ÿ“‹ Resources:

Coding in flow.
3. check this

Now you need to learn some thing awesome called (Material design)

Material is an adaptable system of guidelines, components, and tools that support the best practices of user interface design. Backed by open-source code, ...

Material Design for Android Developers:
4. check this

๐Ÿ‘‰ Go a head and build a project and use the tools that you learned in basic level and Intermediate part 1&2

Advanced part 1:

Alright, you need to add some more features for your app like playing music, integrate google maps into your app, push notification and more..

๐Ÿ“‹ Resources:

Advanced Android App Development.

  1. check this

After that I think you are ready to learn kotlin:

๐Ÿ“‹ Resources:

English
2. Kotlin crash course

After finishing this course above you should be sure that you are good at:

  • val, var, lateinit
  • inline function
  • Scoped funs
  • const VS val
  • data class
  • sealed class
  • Higher order funs and lambda experssion
  1. What is android jetpack?
    check this video
    Get hands dirty with Android Jet-pack.

  2. Learn more about Architecture pattern (MVVM, MVP, MVI).

๐Ÿ‘‰ Go a head and build a project and use the tools that you learned in the previous levels

Advanced part 2:

  • Now, you need to know more about retrofit and it's customization.
  • Learn some design patterns (Builder, singleton, factory, prototype, observer, ...).
  • Reactive programming.
  • Kotlin coroutines.
  • Dependency injection (DI).
  • Jet-pack Compose
  • Sensors.
  • Security.
  • Testing.

What after that: ๐Ÿค”

I think you need to keep learning more and more..

android-roadmap's People

Contributors

ahmed-shehataa avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.