I have 1 year of experience in Android. Now What?

I have 1 year of experience in Android. Now What?

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 learning about the Android Components, we had never taken care of good programming practices. We never thought about what can be a good code as we just wanted to make 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 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 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.

Read other's code. I have learned a lot by going through the open-source code. This is really helping me a lot. I am thankful to the open-course community. For example, read our open-source project: PRDownloader.

Design Patterns

Then, we must have command over the 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.

Link to learn: Mastering Design Patterns in Android with Kotlin

Android App Architecture

Then, learn about the recommended Android architecture like MVP, MVVM, etc. As the below quote fits here.

If you make your foundations strong, then you can rise high and touch the sky.

Architecture like MVP, MVVM 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.

When you do NOT follow any architecture, after adding more and more features, you start facing the following problems:

  • Difficulties in the addition of new features.
  • Introduction of more bugs.
  • Overall slow development.

Learn about the Android Application Architecture from the following resources:


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. Refer to this link to learn RxJava.


Coroutines, a very efficient and complete framework to manage concurrency in a more performant and simple way.

If you are having RxJava in your current project, you can skip Coroutines for now. I mean learn only if it is required to implement it in the near future.

Link to learn: Mastering Kotlin Coroutines In Android - Step By Step Guide


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 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 to this link to learn Dagger 2.

How the 3rd party libraries work?

This is very important to know how the 3rd party libraries work that we are using in our Android application.

Read: How The Android Image Loading Library Glide and Fresco Works?

Read: OkHttp Interceptor - Making the most of it

Best Practices

We should start following the best practices in Android Development.

Check: Android Development Best Practices

That's it for now.

Happy Learning :)

Show your love by sharing this blog with your fellow developers.

Also, Let’s become friends on Twitter, Linkedin, Github, Quora, and Facebook.