How to Learn Android Development in 2020

Khalid Abdul Wahab
Hacktive Devs
Published in
4 min readJan 3, 2020

A couple of years ago, Android development seemed really difficult. We had to write a lot of boilerplate to do things that were meant to be easy, take care of data persistence across configuration changes and many other difficulties. It was a nightmare!!.

That is not the case now though, with the evolvement of Kotlin and its wonderful features, wonderful libraries and the wonderful android community, things have become a lot easier for Android developers, however, android has become much more difficult to keep up with. libraries are being updated with new features daily, we have to study architectures, Dependency Injection, UI, databases, efficient networking, thread management e.t.c. There are tons of libraries that assist us with these, and as such, experienced android developers most likely know how to keep up but what of beginners?? or people that are looking to enter into android development??. They probably would be lost in the tons of resources on the internet regarding these topics and which of the numerous concepts to learn first.

In this post, I will be giving my opinion on how I think beginners should approach going into android development in 2020. Let's Go!!

Note: This post is fully opinionated and some other developers might not agree with some points I make here. It’s totally fine as long as it works for you.

Learn Kotlin.

Android is now kotlin first, all the new android libraries are now being written in kotlin, most of the existing ones are already being migrated to use kotlin and the ones that have not been migrated have provided kotlin support and besides, Java is interoperable with kotlin. Even if you want to learn Java as a beginner, at least learn kotlin first. You do not need the knowledge of Java to learn kotlin. Even though kotlin runs on JVM, it is not a library that “makes Java easier”. It is a separate programming language. This is not to discredit Java in any way, I love Java a lot, however, Google has not actively supported any Java versions beyond Java 8, so android cannot really exploit the features of newer Java versions. Tutorials for learning kotlin are all over the internet. I recommend you take this Udacity kotlin course as it teaches kotlin from a non-Java perspective. Also, there might be answers on StackOverflow that are still in Java. Once you have mastered kotlin, you should be able to understand those answers too but if you don’t, you can use this online java to kotlin converter to convert java code samples to kotlin. You could also easily convert Java to kotlin code in Android studio.

Add “In Kotlin” to your google search

In order to get more kotlin related results and more recent solutions to your google search, add the phrase “in kotlin” to your web search so you get more “kotlin” results. for example “How to create an Android Intent in kotlin”

Check Google recommendations

Google has recommendations for most concepts in android development, e.g google recommends MVVM for architecting your modules, Dagger for dependency injection, room for databases etc. These libraries may have alternatives that you may like better, feel free to check them out too but it is generally better to follow google’s recommendations. To get google recommendations, watch conference talks on youtube like the latest Google I/o, DroidCon, kotlinConf etc talks, read the official android documentation, take the more recent udacity course for android, Take google codelabs for android as well to practice those concepts.

There is no graduation

Learning does not end. As it is for most programming stacks, you don’t graduate from learning them. Libraries keep improving and you will have to keep learning them. Google can decide to deprecate Room in the next couple of years and recommend something else for database operations. This does not mean that you should jump at every new tech or library that comes out but “you should have time for personal development so you can keep learning new concepts at your own pace so that you will stay relevant.”

Practice Practice Practice!!

Write a lot of code!!!. This is the only way to master any framework or library. One good way to practice is to have a practice project. Any new concept you learn, try and add it to that practice project.

It's okay not to know it all.

Android is now very very wide, it is very okay not to know everything. It is still okay to have your app use one or two old concepts if you have not yet learnt the newer ones. Just make sure you don’t stop learning. You can’t rush learning, just take your time and learn the newer stuff as you need them.

Get a Mentor.

When you get lost, find a mentor that can always guide you back on track. It is pretty easy to get lost learning android these days as even the most senior devs argue about what libraries to use. A mentor, however, could lead you to resources that will make it easier for you to decide on which library to use.

Follow Google Engineers on Social Media

By following Google Engineers on twitter, you get to know what they are talking about and stuff they are working on, even If you do not fully understand what they are saying, they will let you know things you should learn!.

In another post, I will be posting step by step learning of Android components and concepts. you should watch this space for that and also follow Hacktive Devs on Medium to get Notified about new publications.

With these steps, I believe learning android this year should be easier for you!

I hope you enjoy your android Journey!!

--

--

Khalid Abdul Wahab
Hacktive Devs

Android developer | Backend web developer. I love to share the little i know