So you want to learn Android development in 2016?

Was on Reddit and came across a similar post as this and wanted to share my thoughts as a long time Android devloper about starting Android development as it's that time of year. A while ago there was a post about this but I wanted to update it with this post. Hopefully you are familiar with Java already and can get started on the fun stuff. Below is the slightly edited/expanded guide to making 2016 the year you get started with Android development.

The obvious place to get started is still with the first app walkthrough from the official Android docs. Then I would move on to making your own first app, usually it's a weather app because it has a simple UI and it teaches you how to pull the data in from an API. After that I would move into an app that interests you (to keep you motivated) and just keep working on your pet project until it's complete. After doing it all by hand at first, I would also suggest not being afraid to add popular libraries (Retrofit, Picasso, Okhttp, etc.) to your project to make development easier.

If you've done all the above then I would start looking at some open source apps to see how they are organized and take note of not only the structure but what paradigms they use as well. You'll typically see lots of Dagger dependency injection as well as some reactive stuff with RXJava. Next I would find a mildly popular open source project to contribute to as working with Git/GitHub (or Bitbucket) is pretty much a requirement for Android developers.

That should keep you busy for about a year or so and get you on your way to becoming an Android dev. Wanted to wish you the best of luck in 2016 and with learning the Android platform.

Pro tip: Use Android Studio
Android Studio is the IDE that Google built specifically for Android development.

Pro tip: Use StackOverflow
So StackOverflow (which you probably already know) is a Q&A community. I usually use the '30 minute rule' for posting questions there. I google the problem first and keep trying to solve it myself in 30 minutes, if I exceed that time then I'll post a question on StackOverflow.

Pro tip: Join a community
There are a number of communities for discussing Android development, there's /r/androiddev and if you use Slack there are some Slack groups like HashtagAndroid (Disclaimer: I started that group).

Pro tip: Settings -> Developer Options -> Show layout bounds
This allows you to see an outline of your views to debug layouts.