Friends, many of you asked me this question, so I thought of writing this as an article to answer this good question so that most of us get benefited.
As we all know there are many things in Android Development to explore and learn. Actually, there is no limit to learn.
There is no limit for learning but the time is limited.
Let’s start, how we all have started the Android Development. We all use to write the whole code in the single class that is Activity either it’s data fetching or any type of logic. As we were busy in learning about the Android Components, we had never taken care of good programming practices. We never thought what can be a good code as we just wanted to make the things work. If something is working, we say the code is perfect. So, ultimately we have our starting one year in learning Android and getting things done.
Now what after 1 year of experience?
As I have already told that there are many things to learn but the time is limited. So what should we learn first?
Good Programming Practices
From my point of view, we must learn about the good programming practices. Writing clean code matters a lot. I have read this book and I highly recommend you all to read this book.
Clean Code — A Handbook of Agile Software Craftsmanship
This book is really good for learning about the good practices in programming and to know how to write clean code.
Writing clean code is what you must do in order to call yourself a professional. There is no reasonable excuse for doing anything less than your best.
Software Design Patterns
Then, we must have command over the Software Design Patterns.
In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn’t a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations.
Then, learn about the recommended Android architecture like MVP, MVVM, etc. As the below quote fits here.
Architecture like MVP is a set of guidelines that if followed, decouples the code for reusability and testability. It divides the application components based on its role, called separation of concern.
If you make your foundations strong, then you can rise high and touch the sky.
Then, it’s time to learn about the Frameworks. There are many great frameworks written by our awesome community in which we all live.
I will only name the few frameworks below that we must learn.
RxJava is a Java VM implementation of Reactive Extensions.
RxJava has become the single most important skill for Android development. Most of you must have worked with it in some form, either in your own codebase or through other third-party libraries, like Fast Android Networking and Retrofit. Refer this link to learn RxJava.
Dagger 2 is a dependency injection for Android.
Dependency Injection in build upon the concept of Inversion of Control. Which says that a class should get its dependencies from outside. In simple words, no class should instantiate another class but should get the instances from a configuration class.
As we know that the Dagger 2 is another important library for Android Projects apart from RxJava. So we must have a proper grip on using Dagger 2 in the Android Projects. Refer this link to learn Dagger 2.
How the 3rd party libraries work?
This is very important to know that how the 3rd party libraries work that we are using in our Android application.
Happy Learning 🙂