In the first part of this series, we talked about how to get started with Android development. The courses I recommended in the first part teach all the fundamentals of Android development. However, as you might expect, there is more to Android.
If you are curious what else there is to learn, take a look at this roadmap for Android developers to have an idea. Don’t get intimidated by the huge number of things to learn, though. You don’t have to master them all at once to publish an app or to be job ready; some of those APIs, you’ll only learn them when you need them.
Moreover, keep in mind that the technologies to build apps are sometimes changing faster than they are documented. Sometimes, this results in courses and tutorials feeling a bit outdated. For instance, Compose is the new UI toolkit of Android which recently went beta. The courses I shared before don’t include Compose, but probably by the next year, Compose will become a must-to-learn for all Android developers. You need to be aware of these kinds of novelties. And you need to keep learning! So in this part, I’ll share more resources and tips for improving your Android skills and staying up-to-date.
Let’s say, you want to learn something specific, (i.e. “How do permissions work on Android?” , “How can I add a barcode scanner to my app?”). Or maybe, you don’t have a specific topic in mind, but you want to check out what is new on Android, or hear recommendations of experts about best practices.
First of all, Google’s developer guides for Android is a vast set of resources that you should bookmark. But there are also plenty of other written or video tutorials on the web.
Here are some good websites about Android, including blogs or coding tutorials:
- Official Android blog (What is new on Android)
- Official Android Developers blog (What is new on Android development)
- Official Google Android Developers Medium page
- RayWenderlich : Video courses and books on this site are paid, but there are tons of free written tutorials.
- PL Coding (Some of the courses on this site are paid, but many are free)
- Google Developer Experts
- Styling Android
- Jeroen Mols
Here are some Youtube channels with video courses on Android:
- Official Android Developers youtube channel
- Antonio Leiva
- Coding in Flow
- Philipp Lackner
These lists are not exhaustive, of course, you can find other channels, and if English is not your native language, you may find other channels in your language as well.
I had shared some course links from Udacity, Coursera, edX in the first part of the series. You can search further in their catalogs the topics related to Android. These companies have paid programs, but they also have lots of free online courses. On Coursera and edX, if you don’t need a certificate you can audit courses for free.
Paid, But Affordable Courses
This next section of resources are paid but they have reasonable prices, so I think they are worthwhile options if you don’t mind investing a little bit of money for decent content.
RayWenderlich: This site is a good source for learning mobile development, both Android and iOs. They have many free hands-on tutorials. However video courses and books require a monthly subscription. For beginner level books and video courses, the price is 20$/month, for professional level books and courses it is 40$/month
Udemy: It is possible to find quite good and detailed courses on Udemy for a small price. Note that prices change all the time on Udemy and if you look out for promotions(maybe wait a bit), you can buy courses for around 10 to 14 euros, paid once. It’s like buying a course book, but you buy a video course instead. If you are not a native English speaker, with some luck, you might even find a course on your native language.
For choosing the right course, I recommend checking out ratings and reviews, examining the syllabus, watching previews and verifying that the last update is recent enough. To give some tips specific to Android, check out if the course contents include recent libraries like ViewModel, LiveData, Room, Navigation, WorkManager.. If instead it still teaches things like ListView, Loader, CursorAdapter, Asynctask, it is out of date, don’t buy that course. In any case, Udemy accepts refunding within 30 days.
LinkedIn Learning: LinkedInLearning is part of the LinkedIn Premium package and it includes lots of great courses in various domains, including Android development. It offers one month free, then it costs 30 euros/month
Pluralsight: Similar to LinkedIn Learning, Pluralsight offers courses in many different domains and it works with a monthly subscription: 26 euros/month. Free trial of Pluralsight is very short, however, if you create a Microsoft Visual Studio developer account(for free), you’ll get one month free access to Pluralsight.
If you prefer books, Packt is a good collection of online tech books that requires subscription. It costs 10$/month.
As usual, the key to get good at any craft is to practice! You can make small practice projects, following online tutorials on different subjects. You can practice with numerous Google codelabs available. But you can also make larger, more realistic apps for practice. You might use different APIs and libraries in different projects to broaden your knowledge(i.e. one app with a local database, another with a REST API etc…) You can publish your projects on your Github page, to show off what you are capable of.
Ideally, if you develop and publish a real app on Google Play Store, it would be an invaluable experience. This will let you learn about the publishing process, using Google Play console, Google Play policies, interacting with users, analysing crash reports, maybe integrating FirebaseCrashlytics and Google Analytics to get stats about the usage of your app.
Besides, by publishing your app, you’d face the reality of Android fragmentation. Different users have different devices from different manufacturers, different Android SDKs, different screen sizes and different software overlays. As Android developers, we should be aware of these, and adapt our apps as much as possible to embrace these differences.
You might even monetise your app by showing ads, by offering in-app purchases or by simply selling it. Don’t expect to earn lots of money if you don’t have a good marketing plan and a budget for advertisement, though. Still, that would be a valuable experience for you as an Android Developer.
Following what is going on in the Android community will help you stay up-to-date.
Google’s Android team frequently share updates on Android, as well as tutorials, code samples, and best practices. I recommend following them on Youtube, Medium or Twitter. But obviously, there are many other Android developers that you can follow on those platforms, to stay up on latest discussions and events in the field.
You can also follow other developers on GitHub, check out code written by more experienced people to get inspired by them. Google’s Android team shares lots of samples on GitHub(some are not up-to-date though). This repository of architecture components samples is particularly helpful.
If you like newsletters, I recommend subscribing to the Android Weekly and the Kotlin Weekly. You can also check previous issues online.
Every year Google organizes a big event called Google I/O and presents what is new on Android (among other things). The event was cancelled in 2020 due to pandemic, but it will be held online in 2021(register for free). Talks from previous years can be found on Android developers youtube channel. You can also find registrations of many other talks on Youtube, like Android Dev Summit, KotlinConf, DroidCon..
Participating in local events is the best way to engage with the developer community in your region. Engaging with the community doesn’t only help you meet fellow developers and make friends, but also keeps you up-to-date with events, novelties and trending topics in the domain. Networking within the local community can also help you find a job.
Unfortunately, many local events are cancelled this year due to pandemic. However, there are many online events going on and the bright side is, you can even participate in the events that take place in other countries! It is a bit more difficult to make friends, but it is still a very good opportunity to learn from the experiences of other developers and stay up-to-date. You can check out Meetup, Eventbrite(or any other app of your choice) for events related to Android. You can also check out if there are any Google Developer Groups(GDG) in your region.
Another way to engage with Android developers is to participate in online workspaces and forums. Android United is a quite active Slack group. KotlinLang is the official Kotlin Slack group and it is very active as well(only for Kotlin specific questions). And /r/AndroidDev is an active Discord group for Android developers. You can search over the Internet whether there are other groups in your zone and in your language. When you’re stuck, you can find help in such platforms. And by helping others, you can establish good connections in the community. Even when you’re passively reading through other developers’ questions and answers, you’ll learn a great deal.
Similarly, it is also very useful to frequently visit StackOverflow. Obviously, as a developer, Stackoverflow is your best friend when you’re stuck. But even when you’re not stuck, you can read through others’ questions and answers. Besides, if you can help others and earn reputation points, it will also show off your knowledge.
Android development is a long and challenging journey. It is particularly challenging to keep up with the pace of change. But it is also quite fun and fulfilling. I hope you’ll enjoy it as much as I do!
This article is part of a series of (guest) posts focussing on (self-)learning to code. You can find more articles from this series here: Learn to Code series archive
If you enjoyed reading this post feel free to share it with your network. ❤️