This road-map for android development that can help you to improve your skills with very recommended articles and other resources.
Section |
---|
About android |
Why java first? |
Java resources |
Android basic |
Android intermediate part 1 |
Android intermediate part 2 |
Android advanced part 1 |
Android advanced part 2 |
Before we start providing you with resources..
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)]
- Most of open source was written with java.
- Most of apps built with java and if you worked somewhere at a company, how do you refactor this app that built 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.
Don't worry Java is not going to be obsolete
💪
- 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
Now you are ready to build user interface using xml and write some java code at android studio.
English
Udacity:
-
Android Basics: User Interface (due to 1 week)
https://mena.udacity.com/course/android-basics-user-interface--ud834 -
Android Basics: User Input (due to 2 weeks)
https://mena.udacity.com/course/android-basics-user-input--ud836 -
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
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
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.
What is Database generally
then start with learning sqllite commands before implement it with android studio:
- 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.
- TODO Add a room db resources.
You should learn networking basics: (working with a remotely data)
Android Basics: Networking (due to 5 weeks)
So now you need to learn about recycler view, fargments, notification, room database and working with some libraries and more..
Udacity:
2. check this
Then you should learn the best libarary in android development that working with APIs called (Retrofit)
Coding in flow.
3. What is API
4. check this
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
Alright, you need to add some more features for your app like playing music, integrate google maps into your app, push notification and more..
Advanced Android App Development.
Arabic
English
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
-
What is android jetpack?
check this video
Get hands dirty with Android Jet-pack. -
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
- Now, you need to know more about retrofit and it's customization.
- Learn some design patterns (Builder, singleton, factory, prototype, observer, ...).
- Kotlin coroutines.
- Testing.
- Reactive programming.
- Jetpack Compose
- Dependency injection (DI).
- Sensors.
- Security.
- The ABC of Coroutines
- kotlin coroutines by tutorials (Book)
I think you need to keep learning more and more..