Before writing a single word, I wish you all a very Happy New Year!!!

A lot of big announcements happened in 2017 for Android that has set up 2018 for a lot of action and innovation.

If you want to become more productive in 2018 or to help yourself get into more innovative projects then follow this guide.

But wait, what if you’re just beginning your career as an Android Developer?

Don’t worry, we’ll cover this first before moving to the advanced stuff.

So, if you’ve just started your career as an Android developer or planning to learn Android app development, follow these steps. [If you are an intermediate Android developer, you can skip this part and jump to Part 2 (coming soon). But if you want to recap the key concepts, keep reading.]

0. Teach yourself Java

Yeah, you read that right. I’ve intentionally marked this step as STEP 0 because before learning Android Application Development you must have some knowledge of Java.

Okay, okay, I can hear you shouting at me now asking —

“I’ve heard from many developers saying Kotlin is a much better option than Java to develop Android apps. Also Google has announced Kotlin as an official language for programming Android apps. Then why the hell are you telling me to learn Java first???” 😡 😡

Just calm down, dude! I’m not saying that you shouldn’t learn Kotlin. I’m just recommending you to learn Java first because you are new to Android development and Java is still a big part of Android. And there are not enough resources to learn all the Android APIs in Kotlin. Most of the tutorials you’ll find on Android Development beginner stuff will be in Java. So, if you know Java then it would be good for you to understand what the Java code is doing without you plugging the code into the Java to Kotlin Convertor.

So teach yourself Java first (if you are new to Android development) before jumping into Kotlin straight away.

I would recommend to learn Java from Head First Java book. This book is so interesting and addictive that you’ll feel like learning Java from a comic book. Get this book from here.

Another good option is Thinking in Java. Get this book from here.

1. Get a book on Android Development or Enroll for an online course

After learning Java, it’s time to get a book on Android Development or enroll for an online course for the same.

I would recommend Android Programming: The Big Nerd Ranch Guide book to start with. This book is an excellent introduction to Android development. It’s based on Big Nerd Ranch’s popular Android boot camps. You can use this book as a practical Android development guide as it provides great code samples with clear explanations of the key concepts.

I would also recommend Head First Android Development. Though this book is a bit outdated, it explains the key concepts in a very interesting way. If you’re looking for a Head First style book on Android then you’ll enjoy reading this book.

If you prefer to learn from video tutorials, I would recommend you to enroll for below courses.

If you want to prepare yourself to become a certified Android developer and if you have the budget, I would strongly recommend you to enroll for Android Developer Nanodegree Program from Udacity [In collaboration with Google].

And finally, don’t forget to bookmark the official training guide for Android developers from Google. This official guide covers all the basic stuff with a lot of code samples which can prove to be very much helpful to any Android developer.

By the way, do not just read the books like you read any novel or do not just watch the videos like you watch any movie. Make sure that whenever you’re going through a new concept, you’re building some sample apps implementing those concepts. [This is the only way to learn Android effectively — By building apps]

2. Make sure you understand these concepts very well

Activity LifeCycle [Watch Kristin Marsicano exploring the Activity Lifecycle in this talk]

Kristin Marsicano presenting Activities in the Wild: Exploring the Activity Lifecycle at 360|AnDev 2016

Service, IntentService and their lifecycle

Broadcast Receivers

Content Providers

Tasks and the Back Stack

Also refer this link — Android Task and Back Stack Review

Debugging your app

Context in Android

Android Views and Layouts

Android Themes and Styles

Fragments

ViewPager

RecyclerView

Shared Preferences

Sqlite

Threading

I would also recommend Efficient Android Threading book.

ThreadPoolExecutor

Looper, Handler, HandlerThread

HTTP and REST

Networking in Android apps

Notifications

Location and Maps

Android Sensors

Localization and Internationalization

Run Time Permissions

App Standby and Doze Mode

Android Support Libraries

Material Design

Android Build System

3. Few More Recommended Reading

Okay, these are the beginner stuff.

But, what if you already have some experience in Android development and your new year resolution is to learn more advanced stuff and become a Pro Android Developer … So what stuff should you learn next?

Stay tuned. We’ll cover that in the next part. 🙃