I still remember the day a few years back when I started Android development and stepped into the vast world of unknown with almost no idea where to start and what to do next.
Searching on Google, stumbling miscellaneous articles and checking out StackOverflow answers were the only ways for me to gather knowledge on Android. Back then, I had a hard time finding good quality tutorials to learn from but with time I started knowing places where I could find useful resources to gather knowledge and improve my skills.
In this article, I have collected a lot of resources that can prove to be highly useful for almost all Android developers, even if you are a beginner or a seasoned developer. This is an attempt to reduce your pain and help you get access to the right resources to master Android development.
For The Beginners
These are some of the resources that can prove to be invaluable to any Java programmer starting their Android development journey.
An easy and beginner-friendly course developed by Google to learn the basics and fundamental concepts of Android development quickly.
Simple, easy and a complete guide for all beginner-level Android developers willing to develop their first Android app.
It is one of the best yet underrated resource that almost all Android developers should know right from the beginning of their development journey.
If you are just stepping into the vast world of Android development, then it is quite obvious that you will get overwhelmed with a lot of new concepts and terms everywhere. Don’t worry, Google has designed an interactive and easy-to-use glossary with code examples to make your life a lot easier.
The official training guide for Android developers from Google which can prove to be extremely useful for any beginner developer. The training covers all the basic stuff with a lot of code examples you need.
A very insightful and resourceful article for all newbie developers starting out their Android development journey. Always learn from others experiences, mistakes and never repeat them yourself.
Not familiar with XML? Then it is the perfect time for you to learn it as you will need to use it heavily to design your layouts in Android. It is very easy and should not take you much time to grasp.
If you are going to communicate with the internet services and make API calls from your Android app, then it is very important for you to have a good understanding of HTTP and REST.
For The Experienced Developers
If you have been doing Android development for a year or two, then here are some amazing resources which will help you to increase your knowledge and skills on various aspects of Android development further.
A well-designed course by Google which is perfect for any intermediate level Android developer to boost up their development skills further.
If you have been doing Android development for some time and is struggling to find elegant ways to solve critical software development problems, then these are some of the most common design patterns that can help you a lot.
Android has a very rich community of open-source apps, but how do you know which are the best ones for you to learn and improve your development skills from. Don’t worry, this article has got you fully covered.
Learn about the best approach to architect your complex Android app for better development, testing, debugging and maintenance.
We all know how complex and frustrating Android’s Activity and Fragment lifecycle can sometimes get, but there are other “more modern” ways of creating apps as well and this article can give you a clear idea about it.
Jump into the world of reactive programming on Android with this easy and useful tutorial to get you quickly on board.
Get an in-depth insight into the Android View constructors, how they work and how you can make the most use of them while developing your own custom views.
If you want to understand how the asynchronous world of Android framework is built and leverage it to make smooth, fast and high-quality applications, this is exactly what you need to look at.
An in-depth tutorial on understanding how Views and ViewGroups work in Android and how you can create your own custom UI components with perfection.
Not many developers properly understand how the different launch modes in Android work and how you can make use of these to create the perfect navigation in your app.
You have been using libraries in your Android apps for quite a while now and want to contribute to the community as well, here is a complete and in-depth guide for publishing your own library.
Learn how you can make a smooth and successful launch of your Android app in Play Store that you have been developing for months.
This Github repository can prove to be a gem for all those who want to learn about the different architectural tools and patterns to develop Android apps like a pro.
If you are confused between developing web-apps and native apps and want to deliver easily discoverable and fast-loading apps, then this is something you cannot afford to miss.
If you are developing Android apps for quite some time now and want to improve your productivity and development workflow then these are the tools that you surely need to check out.
You have been using Android Studio almost every day to develop your apps but have probably never realized how powerful it actually is and there is so much you can do to make the most out of it.
Best Practices in Android
Following the best practices helps you to develop cleaner and better apps and it is even more important if you are developing with a team where it is very important for you to maintain a consistent development style for everyone to be on the same page.
An easy and resourceful article explaining several aspects of Android development best practices.
This article is all about the best practices of using the strings.xml resource file properly and making the most out of it.
One of the best and the most complete resource about the best practices and guidelines of various aspects of Android development covering almost everything you need to know.
Want to use Android in your company, then this article can help you learn the techniques of making the best use of Android for Work in your enterprise.
A quick and extremely useful list of some of the best practices of Android development to ensure that you are always delivering high-quality Android apps.
Effective Java (by Joshua Block) is considered to be one of the best books for writing high-quality maintainable Java code. This post focuses on how you can make the best use of those techniques and principles specifically in Android development.
If you have chosen the reactive way of building Android apps, then these tips can surely help you avoid some common mistakes and get the best out of it.
An in-depth article about some of the common techniques of storing secrets (password, API keys and other sensitive information) in Android apps and their pros and cons.
Designing Beautiful Apps
An app is always incomplete without a good user interface. A clean and beautiful UI is what makes your app appealing, gives it the wowing factor and makes it stand out from the rest.
A very well-written article giving you an in-depth insight into the world of Material Design for Android.
Learn how you can create beautiful and meaningful animations in your Android app to wow your users and make it stand out from the rest.
The freshly-baked ConstraintLayout completely changes the game when it comes to designing layouts for your Android apps. This article can help you understand the basics of ConstraintLayout and give it a quick start.
Design better and more high-quality apps by not making these common mistakes while embracing Material Design in your Android app.
A very insightful article giving you a more scientific perspective into Material Design and how you can put it to the best use while designing your app.
Some interesting bonus resources you will never want to miss.
If you want to keep yourself updated with the latest development happenings in the Android world, make sure to follow some of the expert Android developers on Twitter.
Want to dive into the world of IoT using Android tools and its framework? Here is a good resource for you to start your journey.
If you are interested and excited about developing apps for Android wearables, then here is a complete tutorial to get you started.
A very interesting article about the nitty-gritty details of the Android resources and attributes you probably didn’t knew.
Want to develop apps for the big screen TVs or make your already working apps to support this new platform? Here is quick and good introduction for you to get started.
Want to stay updated with the latest development news, tutorials, and happenings in the Android world? Here are some of the best places for you to check out.
Never miss out on the latest and greatest development news, articles, screencasts and other happenings of the Android world. Android Weekly offers free newsletters every week for you to stay updated with no effort.
If you love listening to podcasts, then you will surely not want to miss the bi-weekly episodes discussing about various tools, patterns and best practices to become a better Android developer.
One of the best and most up-to-date crowdsourced resource for Android developers where you will find guides and tutorials about almost everything in Android. And the best thing is that it is completely open-source for you to contribute to it as well.
Get high-quality bite sized Android development screencasts on a wide-variety of development topics released every week.
This is the place where you will find all essential information that you will need for designing the UI and UX of your app, hence the name “styling android”.
Mark Murphy, popularly known for authoring the famous book, “Busy Coder’s Guide to Android Development” writes about some interesting stuff about Android development on his personal blog.
This site covers well-written, in-depth tutorials on a lot of topics in Android development that can be invaluable for both beginners and intermediate-level Android developers.
A very active community of Android developers from all over the world discussing and sharing information on various Android development related topics.
This is the official blog through which Google communicates directly with the Android developers. All the latest development related news and announcements appear here first before anywhere else.
I hope these resources will help you learn more about Android development and build better apps. If you found this useful, do share it with your friends and co-developers as well.