Android has surged past iOS to dominate the world’s smartphone market, but its ecosystem is growing at an exponential rate. There were more than 24,000 different Android devices at the last count, which places major strains on devs. To learn Android development, you have to learn how to optimize for hundreds of different devices.
So you need a clear learning plan that can be applied to the entire Android ecosystem. If you want to know the best resources to learn Android app development (and we assume you do, given you’ve clicked on this page), we’d urge you to focus on four key pillars:
- The Android programming language, Kotlin (which has become increasingly important as Kotlin has overtaken Java).
- The core skills of UI with Jetpack Compose.
- The nuts and bolts: networking, geolocation, etc.
- The advanced stuff: machine learning and web3.
In this post, we’re going to break open each of these topics and pick out a bunch of resources that show you how to learn Android development, from base to pro. We’ll provide a mix of core Android developer resources and courses.
Ok, and how long will it take to learn Android app development?
This will ultimately depend on you: the level of expertise you’ve already acquired and the speed you’re comfortable with.
As we mentioned at the top, the sheer breadth of devices means Android development is more complex than iOS. Some devices require custom libraries and won’t comply with central standards, and this is something you’ll be constantly grappling with as an Android developer. But if you’ve already gained experience with iOS or web development, you may have a jumpstart.
The important thing is to make a plan. In fact, we recommend creating an Android learning roadmap, setting regular targets and checking off your progress.
The time it takes doesn’t really matter. What matters is that you learn Android to last: in other words, you build a nucleus of knowledge that will allow you to branch out into different devices.
Ok, so let’s start looking at the pillars of your Android learning program. And we’ll kick things off with the code.
Kotlin has gradually outstripped Java as the most popular language among Android app developers. According to Google’s official Android developer platform (more of which later), 60% of Android devs now rely on Kotlin first and foremost. The language has become popular for several reasons, including its code efficiency, greater readability, the breadth of support provided by Google and the support it provides for multi-platform development.
Thus learning Kotlin is crucial to learning Android, and the best resources will give you a thorough knowledge of its complexities, such as:
- Integral features like extension functions and data classes.
- Nullable and non-nullable types, which can be a boggle if you’ve not used them before.
- The specific challenges involved in setting up the development environment.
- Advanced stuff like networking, notifications, data persistence and geofencing.
Thankfully, you’ll find a number of resources to help you. Here are our top three.
Udemy provide some of the world’s best Android learning resources, and their introductory guide to Kotlin is a great example.
You’ll get step-by-step tuition in everything, right down to the software you need to install. You’ll cover core topics like variables, loops and conditions, with practical tests and challenges that allow you to learn by doing.
Once you’ve completed your beginner course, we strongly advise you to check out the Type Alias blog, run by U.S.-based Android dev Dave Leeds.
Dave’s been building apps since before the smartphone was even invented, and he loves showing people how to learn Android development in a simple, engaging way. He even provides cartoons and illustrations to help you along the way.
As well as providing guides on core topics such as arguments, sequences and inline classes, Dave gives you a glossary of concepts complete with example code strings. We’ve often used his materials to build apps at Bugfender.
This talk, taken from the Ordev conference in 2017, is very much aimed at seasoned devs who want to learn advanced Android app development concepts.
Instructor Christina Lee, who has worked with Google, Pinterest and New York University, deals with type systems, generics and lambda optimizations – all the stuff you’ll need to know if you’re building sophisticated Android apps. The pace of the talk is ideal and Christina provides lots of coding screenshots, so you can take the knowledge away with you.
UI: Android Studio and Jetpack Compose
No matter what kind of Android app you’re building, you’ll need to familiarize yourself with Jetpack Compose if you want to create great UI.
Released in 2021, Jetpack Compose offers a number of advantages if you’ve just started to learn Android development. You can build your UI with declarative syntax – in other words, you say how you want your app to look, and the software handles the rest – and the UI code is super simple. You can test your UI components individually and you get a real-time preview feature in Android Studio, so you can see how all your changes are panning out.
However, it’s not all plain sailing. For example, creating custom components in Jetpack Compose can present more challenges than other programmes, and because the programme is so new, the community isn’t particularly big.
Among its Android developer tools, Google offers an entire learning library on Jetpack Compose, going from basic composable functions all the way through to advanced layouts, form factors and accessibility concerns.
Many of the individual modules are introduced with videos, and you can gamify your learning through quizzes and Codelab walkthroughs, so classroom-style learning is kept to a minimum.
We love the vault of Android learning resources provided on Github. You get a mix of articles, tutorials, slideshows and interviews, so you can learn in the format that suits you best.
What’s more, the Android resources have links to a whole bunch of legendary devs, including Ray Wenderlich, someone we singled out for special praise in our guide to iOS learning resources (link).
The nuts and bolts
As we mentioned at the top, Android development is a complex art form to master, due to the sheer number of devices you have to build for. However, there are certain themes that will crop up again and again.
Vogella is another one of those wonderful projects that offers an entire library of Android learning resources. As well as introductory guides to Kotlin and Android Studio, it covers every single aspect of Android programming in forensic detail. We really enjoyed the guides to notifications, unit tests and reactive programming, but you’ll find all of them useful.
What we love about Vogella is the content structure. The articles are written in simple language with lots of page breaks, plenty of code strings and some simple checklists to track your learning. Like all the best Android learning resources, Vogella tailors its content to developers of all levels and makes it accessible to everyone.
Cool name, right? Well the stuff inside’s pretty good too.
True to the cookbook theme, the book offers ‘recipes’ to deal with common Android problems. These recipes have been crowdsourced from dozens of devs, so you’ll get a broad sweep of styles and approaches.
You’ll cover core topics like multitouch gestures and location awareness, and address integral features of the Android device like the camera and accelerometer.
Advanced stuff: Machine learning and web3
Machine learning has been key to Android for several years. Now it’s moving a stage further, with the switch from the Cloud to on-device machine learning (where all the clever processing happens on the phone itself).
To master ML, it’s crucial you understand Python. Python provides a number of libraries used to build and train ML products, and it’s pretty simple to learn. What’s more, it ties in nicely with Kotlin, so can support the rest of your Android learning roadmap.
We’d also urge you to gain a thorough knowledge of web3, because this is the direction of travel for all smartphones. This new version of the internet, based on blockchain, will potentially enable users to take greater control of their apps and encourage the use of native digital currencies, like Bitcoin, for online transactions. If you want to learn Android for the long-term, you’ll need at least a working knowledge of this.
This stuff can be tricky to get your head round, so we recommend finding resources that explain the concepts simply and gradually, with plenty of analogies (this can really help with the blockchain stuff, which can be very arcane). Here are some resources that have really worked for us:
If you want to ****learn any aspect of Android development, Mosh is your man. He’s chilled, friendly and his video tutorials are easy to follow.
The Python tutorial is essentially a series of screenshots, walking you through the foundations of the language, and the examples are relatable. Some tutorials will describe how to build complex apps, the sort of projects you don’t come across everyday. But Moz keeps it real.
Google offers both foundational and advanced courses on machine learning, but we’ve found the advanced courses particularly useful at Bugfender.
If you’re at the latter stages of your Android learning program and you feel like you’re ready to tackle some seriously high-level stuff, these courses will help you get your head around topics like decision forests, clustering and generative adversarial networks.
There are loads of web3 resources out there, and we’d be happy to recommend some more advanced options for you. But this video, from blockchain development platform thirdweb, offers a nice primer.
You’ll see some basic code strings and get an introduction to some other resources too. The presentation style is nice and simple, so you won’t feel flooded with impossibly complex ideas.
To find out more of the best resources to learn web3 for Android, feel free to hit us up. We’ll be glad to provide suggestions.
And finally: what to learn once you’ve mastered Android
Today we’ve given you a selection of the best resources to learn Android development, and given you the building blocks to create winning projects.
But even when you’ve reached pro level, there’s still more to learn. Once the app goes live, you will need to provide support, bug fixing and release updates to your customer base.
One of the key things you’ll want to know about is how to properly test your app before releasing a new version. The best way to do this is by automated testing, and you can check our article about the best tools to do it here.