Google is committed to advancing racial equity for Black communities. See how.

Advanced Android in Kotlin: Welcome to the course

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:

  • Install and use Android Studio.
  • Run apps from Android Studio on both a device and an emulator.
  • Create and use activities and fragments in Android, and understand their lifecycles.
  • Use views to create your app's user interface (UI) following Material Design guidelines.
  • Enable UI through click handlers.
  • Create layouts with ConstraintLayout using the Android Studio layout editor.
  • Implement the recommended architecture with ViewModel, LiveData, and data binding.
  • Create and use RecyclerViews with a Room database.
  • Use coroutines and WorkManager for long-running and background tasks.
  • Connect to the internet and get data.
  • Save and restore app state.

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:

  • Lesson 1: Notifications
  • Lesson 2: Advanced Graphics
  • Lesson 3: Animation
  • Lesson 4: Geo
  • Lesson 5: Testing and Dependency Injection
  • Lesson 6: Login

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:

  • Testing code with coroutines
  • Testing Room
  • Espresso Idling Resource
  • End to End testing with Data Binding

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.