Blog
Android Learning Path
February 19, 2023 - 15 min. read
Interested in becoming an Android developer? Our team designed this learning path to help you kickstart your journey. Get ready to learn the fundamentals of Android development & build your first Android app.
Let’s dive in!
1
The Languages
First things first: start by learning 2 of the main programming languages for native Android development.
1.1 Kotlin
Your goal in this section is to master Kotlin: Google’s preferred language for Android development. It is widely used today.
- Course: Kotlin Bootcamp For Programmers | by Google (2 weeks)
- Hands-on Lab: Android Basics in Kotlin | by Android
1.2 Java
Up until 2019, Java used to be Google’s favorite language for Android development. Many popular apps still use Java today, so we recommend you learn it alongside Kotlin.
- Course: Java Programming for Beginners | by Cezanne Camacho & Asser Samak (6 weeks)
- Course: Object-Oriented Programming in Java | by Asser Samak & James Williams (4 weeks)
2
The Fundamentals
Now that you’ve learned Android programming languages, let’s go through the general basics of Android development. Get an overview of the app structure, memory management, and how to use the IDE.
- Official Guide: Android Developer Guides
- Official Guide: Manage Your App’s Memory
- Official Guide: What Is Gradle?
3
The User Interface
To develop the UI of your Android app, you can use XML, Jetpack Compose, or a bit of both. Jetpack Compose is a UI toolkit that Google launched recently. It’s recommended for faster and easier UI development.
The choice between them will depend on the specific needs of the project & the experience and preferences of the developer.
3.1 XML UI
- Course: Developing Android Apps with Kotlin | by Google (2 months)
- Course: Advanced Android with Kotlin | by Google (2 months)
- Official Guide: Android UI Testing Using Espresso
3.2 Jetpack Compose UI
- Hands-on Lab: Jetpack Compose for Android Developers | by Android
- Course: Jetpack Compose Crash Course | by Catalin Ghita (11 hours)
- Book: How to Build Apps With Jetpack Compose (Practical) | by Joe Birch
- GitHub: Official Jetpack Compose Samples
- Official Guide: Testing Your Compose Layout
5
Dependency Injection Using Hilt
For large-scale Android apps, you need to simplify and enhance the process of injecting dependencies. Using Hilt helps you make code more maintainable and testable by promoting loose coupling & reducing boilerplate code.
- Official Guide: Dependency Injection With Hilt
6
Networking Using Retrofit
Next stop: learning about networking in Android. Almost every app needs to retrieve and/or update data from the backend. One of the best ways to handle this in Android is using Retrofit.
7
Data Persistence Using Room
Persisting data is a key skill for any mobile app developer. Learn how to make your Android apps work offline using Room, Google’s persistence library.
- Official Guide: Save Data in a Local Database Using Room
8
Notifications Using OneSignal
Local & push notifications are valuable to most app owners. In this section, you will learn how to display & schedule notifications via One Signal, one of the most popular solutions available.
- Guide: Android Notifications Tutorial: Getting Started | by Kodeco
- Official Guide: OneSignal: How to Add Push Notifications to an Android App with Java and Kotlin
9
Version Control Using Git
During development, you and your team will make many changes to your app. In this section, you will learn how to track & manage these changes using Git.
- Course: Version Control With Git | by Richard Kalehoff (4 weeks)
10
App Release
It’s time to release your app. Congratulations! Check out the guide below to find out more about testing & publishing your app. Last but not least, make sure you abide by the Google Play Store guidelines.
- Official Guide: Google Play Policy Center
- Official Guide: Publish Your App
Conclusion
We hope this learning path helps you become a skilled Android developer. Most importantly, we hope you enjoy the learning process & building awesome mobile apps.
Comments