Welcome to the Kotlin Android Fundamentals course, created by the Google Developers Training team. This course provides a series of codelabs that lead you through the fundamentals of building Android apps using Kotlin. In this course, you learn basic Kotlin Android 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.


To take the Kotlin Android Fundamentals course, we recommend that you have at least 2 years of experience in a full-fledged object-oriented programming language such as Java, C++, or Smalltalk.

You should be comfortable navigating GitHub and comfortable with Kotlin syntax, including nullable and non-nullable variables, methods with default and variable arguments, data classes, object expressions, lambdas, and extensions.

You should also be familiar with the following concepts, tools, and vocabulary:

It also helps to have an idea of what functional programming is, but it's not required.

Starter and solution code

As you work through the codelabs in the Kotlin Android Fundamentals course, you create apps. The source code for starter apps and solution code for the apps that you create is in GitHub.

Kotlin Android Fundamentals includes the following lessons:

Each lesson contains several codelabs.

Lesson 1: Build your first app

This lesson teaches you how to set up Android Studio to use Kotlin and how to build apps, starting with "Hello World" and moving up to an app that uses image files and a click handler. You learn how Android projects are structured, how to use and modify views in your Kotlin Android app, and how to make sure your apps are backward-compatible. You also learn about API levels and the Android Jetpack libraries.

Lesson 1 includes the following codelabs:

Lesson 2: Layouts

In this lesson, you learn how to use the Android Studio Layout Editor to create linear layouts and constraint layouts. You create apps that get and display user input, respond to user taps, and change the visibility and color of views. This lesson also teaches you how to use data binding to eliminate inefficient calls to findViewById().

Lesson 2 includes the following codelabs:

Start the Kotlin Android Fundamentals course by taking the first codelab, 1.0 Install Android Studio.