If you've been looking for a specific application for a specific use for a while and can't find it, it's never too long to learn to program Android applications and create it yourself. Creating a simple application on Android is within the reach of anyone with patience and desire, although to create more complicated apps you will require good resources (and even more desire).
If you are thinking of learning to program applications for Android, here we show you the 23 Most Helpful Resources You Can Find Today to help you achieve it and, best of all, all the resources we have included are free and of quality.
Official Android Documentation
The world of Android changes with each version, and even more from the point of view of the developers. For this reason, it is common that tutorials and information available on the Internet do not take long to get out of date. The only way to stay updated is to consult the official Android documentation, directly from the hand of Google.
The documentation can be overwhelming at first, although it does have a section with developer guides that explain in an entertaining way the basic, and not so basic, concepts of Android application programming. For those who are just starting out, the guide can be especially useful How to create your first app.
If you want the applications you create to look good as well as being functional, you should take a look before or after at the official Material Design documentation, related to Android, but which is kept separate as it is multiplatform and not just for Android.
This documentation includes the various components of Material Design, as well as recommendations on what what you should and what you should not do with them and the new customization possibilities of Material Theming.
If you are one of those who prefer not to start from the blank sheet, the repository with example Android applications is immense, with 220 sample applications at the click of a button, both Java and Kotlin or C / C ++. You can do searches, filter by themes and each example is hosted on GitHub, so it won't cost you anything to clone it to your PC.
What's more, these sample applications are accessible directly from Android Studio, so if you want to browse how this or that is done, you just need to import an example application from the Android Studio welcome window, in Import an Android code sample.
If you're starting out with Android programming right now, you can ignore Jetpack at first, but sooner or later you'll have to deal with this evolution of the support library. Jetpack are a set of libraries and tools for facilitate the creation of apps with advanced functions which adapt well to older versions of Android.
Jetpack encompasses many component libraries that were previously offered separately or within the support library, and if you don't want to go crazy you should have a notion, at least approximate, of what it is and what it is for. On their website you have infinity of information and guides.
There are video tutorials on YouTube for just about anything you can think of, and there are also lots and lots of videos to learn how to program on Android. The Android Developers official channel mix basic concepts with advanced ones and full talks with best practices.
Of course, it will not be difficult for you to find many other YouTube videos and channels with similar content (such as MoureDev), although you should keep in mind that the content from a few years ago will be practically out of date, so you better not fill your head with concepts that are not very applicable today.
Codelabs are something like exercises in which you must complete a series of steps. Some of these Codelabs guide you to create a simple application, while others are part of a tutorial or focus on a specific functionality. Generally, each exercise takes no more than a few minutes.
The good thing about Codelabs is that generally you are guided a lot about what you should do, providing you with the code at the end in case you got stuck. There are currently a good number of Android-based Codelabs, both in Java and in Kotlin.
One step beyond Codelabs are Google courses, ranging from basics to building applications with advanced features. Currently Google lists some courses for beginners and advanced developers, all of them free and that you can easily do at home with Android Studio.
Some of these courses are based on Codelabs, guiding you through exercises on what you have to do, while others are complemented with complete videos (in this case, they are the Udacity ones that we will see below).
Google courses at Udacity
If you are looking for courses that guide you in greater depth, especially in the basics, Google currently has 15 free high-quality courses at Udacity and 2 nanodegrees (which are paid).
These courses include extensive video explanations, often summarizing complicated concepts to make them easier to understand, plus exercises and quizzes for you to test if you are following the explanation.
Other free courses
In basically every online teaching platform, it will not be difficult for you to find programming courses on Android, in some cases for free. For example, on Udemy you can use search and filters to find free courses. Again, remember to focus on relatively new courses, to avoid learning "out of date" information.
Stack Overflow is a resource that will not help you to learn, but for when you come across an error and don't know how to fix it during your programming practices. By copying the error you get into their search engine, it is quite likely that you will find someone who has had the same problem before and hopefully the solution to it in their answers.