Searching on Google, miscellaneous articles and checking out StackOverflow answers are definitely some of the efficient ways to gather knowledge on Android. But people generally go through a hard time finding good quality tutorials to learn from.
Here, 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.
To learn Android Development, the top and best resource is UDACITY Courses ! Why ? Well they are developed in collaboration with Google and taught by Google's industry experts, following best and recommended practices. So if you want to start learning Android Development, just pick a language and start learning from very basic from Udacity's Courses.
In the field of Android development, you have two languages to choose from:
Java (Ex-Official Android Development Language)
Kotlin (Official Android Development Language at Google I/O May 2017 and now used by most of the top apps in PlayStore)
[Beginner]
Android Basics: User Interface By Google - Beginner friendly course developed by Google to learn the basics and fundamental concepts of Android .
Android Dev By Android Studio - Easy and complete guide for those who wanted to develop their first application.
Android Development Codelabs - This is a really amazing and underrated course which I think all android developers should know in the beginning. You can learn anything related to Google's Technologies here including Android, Firebase, Tensor Flow, Flutter, Google Cloud etcetera.
Training course by Google Developers - Whether you’re new to programming or just new to Android, you can visit this site for training or certification.
Developing Apps With Kotlin - Practice android development with Kotlin, a much faster and efficient way of programming applications.
Developer Guide - A complete documentation
XML Basics - Not familiar with XML? You will easily grasp it through this.
HTTP and REST - It is very important for you to have a good understanding of HTTP and REST for making APIs and communicating with the internet services.
[Advanced & Experienced Developers]
Advanced Android App Development - If you have been doing Android development for a year or two, then this can be really beneficial for you.
Develop Android Apps - A well-designed course by Google which is perfect for any intermediate level Android developer to boost up their development skills further.
Common Design Patterns and App Architectures for Android - 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.
Reactive Programming with RxAndroid in Kotlin - Jump into the world of reactive programming on Android with this easy and useful tutorial to get you quickly on board.
Productivity Tools for Android Developers - 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.
[Youtube Channels for Android Development]
Below list contains, in my opinion, currently the best YouTube channels to learn Android development for free. The list reflects my own honest opinion and I will only recommend channels that I think have a high quality and teach valuable.
Note: I won’t list channels that haven’t posted anything Android related in months. That doesn’t mean these channels don’t have good Android tutorials, but you will find these tutorials through the normal Google and YouTube search when you need them. I will focus on channels that are worth subscribing right now because they keep releasing new and up to date videos frequently.
Android's Official Youtube Channel : Android Developers
CodingWithMitch : Video lectures and bigger tutorials where he teaches how to build real applications.
Philipp Lackner : Uploads quality content on regular basis
Coding In Flow: Short, but very focused and detailed Android tutorials about topics.
Simplified Coding : Teaches very well researched and present in a concise and understandable way.
SmartHerd : Creates a ton of high-quality content — mostly about Android, but also about other topics like Node.js or programming language fundamentals (Java, Kotlin, Dart etc).
I hope these resources will help you learn more about Android development and build better apps. I will be sharing some best practices, cheat sheets for Android as well in the further blogs. You can subscribe my newsletter for this so that you’ll be getting all the resources just in your mail box.
Till then Happy Coding! ☺