Welcome to the Advanced Android in Kotlin course, created by the Google Developers Training team. This course provides a series of codelabs that lead you through the advanced topics of building Android apps using Kotlin. In this course, you learn advanced Android Kotlin programming concepts and build various apps.

We recommend that you take the codelabs in sequence, but it's not a requirement.

To learn about other Android training created by the Google Developers Training team, visit Google Developers Training: Android.

Prerequisites

To take the Advanced Android in Kotlin course, you must have Kotlin programming experience and know the fundamentals of how to build an Android app using the Kotlin language.

You should be familiar with all the concepts, tools, and vocabulary taught in Udacity's free Kotlin Bootcamp for Programmers course, as well as the Android Kotlin Fundamentals course.

This course builds on skills taught in the Android Kotlin Fundamentals course. Specifically, you should know how to do the following:

Starter and solution code

As you work through the codelabs in the Advanced Android in Kotlin course, you create apps. The source code for starter apps and solution code for the apps that you create is in GitHub, usually, one repository with multiple branches per lesson.

Advanced Android in Kotlin includes the following lessons:

Each lesson contains one or more codelabs.

Lesson 1: Notifications

This codelab is part of a series that guides you through using in-app and push notifications. We recommend that you do all the codelabs in order, because they progress through tasks step-by-step.

The codelabs in this series are:

Lesson 2: Advanced Graphics

This codelab is part of a series that guides you through building custom views, drawing on a canvas, clipping canvas objects, and using shaders for cool effects. We recommend that you do all the codelabs in order, because they progress through tasks step-by-step.

The codelabs in this series are:

Lesson 3: Animation

This codelab is part of a series about Animation with Android. We recommend that you do all the codelabs in order, because they progress through tasks step-by-step.

The codelabs in this series are:

Lesson 4: Geo

This codelab is part of a series that guides you through adding maps to your apps. We recommend that you do all the codelabs in order, because they progress through tasks step-by-step.

The codelabs in this series are:

Lesson 5: Testing and Dependency Injection

The Android Testing lesson includes three codelabs:

Testing Basics

This codelabs covers the basics of running and writing tests for Android. It includes Test Driven Development, source sets, Robolectric, AndroidX, and testing ViewModels and LiveData.

Dependency Injection and Test Doubles

This codelab covers how to implement manual dependency injection and use test doubles on Android. It includes setting up manual dependency injection, creating fakes, creating mocks, creating ServiceLocators, instrumentation tests for Fragments, testing Navigation, and basic Espresso testing.

Survey of Testing Topics

This final codelabs covers testing specific types of code, including:

Lesson 6: Login

This codelab is part of a series that guides you through supporting login for users . We recommend that you do all the codelabs in order, because they progress through tasks step-by-step.

The codelabs in this series are:

You need Android Studio installed.

Start the Advanced Android in Kotlin course by taking the first codelab, 1.1 Using Android Notifications.