Android Basics with Compose is a self-paced, online course on how to build Android apps using the latest best practices. It covers the basics of building apps with Jetpack Compose, the recommended toolkit for building user interfaces on Android.

Course goals

  • Understand the fundamentals of Kotlin and Jetpack Compose
  • Build a series of basic Android apps
  • Use Android app architecture, Jetpack libraries and work with data according to Modern Android Development practices

Prerequisites

  • Basic computer skills
  • Basic math skills
  • A computer that can run Android Studio (see system requirements)
  • (Optional) Android device
Unit 1: Your first Android app

3 pathways | Duration: 10 hours

Learn programming basics and create your first Android app.
  • Write simple Kotlin programs that display text output.
  • Download and install Android Studio.
  • Build an Android app with a simple user interface that displays text and images.
  • Run the app on a device or emulator.
Introduction to Kotlin

Pathway 1 | Duration: 3 hours
Learn introductory programming concepts in Kotlin.

Before you begin
Codelab
Welcome to Android Basics with Compose
Video
Your first program in Kotlin
Codelab
Create and use variables in Kotlin
Codelab
Create and use functions in Kotlin
Codelab
Practice: Kotlin Basics
Codelab
What's next?
Video
Quiz
Setup Android Studio

Pathway 2 | Duration: 4 hours
Install and set up Android Studio, create your first project, and run it on a device or emulator.

Introduction to Android Studio
Video
Download and install Android Studio
Codelab
Create your first Android app
Codelab
Run your first app on the Android Emulator
Codelab
How to connect your Android Emulator
Codelab
What's next?
Video
Quiz
Build a basic layout

Pathway 3 | Duration: 3 hours
Build an Android app with a simple user interface that displays text and images.

Intro to Jetpack Compose
Video
Design a birthday card app
Video
Build a simple app with text composables
Codelab
Add images to your Android app
Codelab
Practice: Compose Basics
Codelab
Project: Create a business card app
Codelab
What's next?
Video
Quiz
Unit 2: Building app UI

3 pathways | Duration: 21 hours

Continue learning the fundamentals of Kotlin, and start building more interactive apps.
  • Use conditionals, function types, classes, and lambda expressions in Kotlin.
  • Understand how composition and recomposition works.
  • Add a button to an app UI and respond to user taps.
  • Create an app that works with data entered by the user.
  • Learn how to use state to display data and reflect the changes automatically when the data gets updated.
  • Write unit tests to test isolated functions.
Kotlin fundamentals

Pathway 1 | Duration: 8 hours
Learn more fundamentals of Kotlin, object-oriented programming, and lambdas.

Kotlin Fundamentals
Video
Write conditionals in Kotlin
Codelab
Use nullability in Kotlin
Codelab
Use classes and objects in Kotlin
Codelab
Use function types and lambda expressions in Kotlin
Codelab
Practice: Kotlin Fundamentals
Codelab
What's next?
Video
Quiz
Add a button to an app

Pathway 2 | Duration: 6 hours
Learn how to respond to a button click in an Android app.

Intro to Dice Roller app
Video
Create an interactive Dice Roller app
Codelab
Use the debugger in Android Studio
Codelab
Practice: Click behavior
Codelab
What's next?
Video
Quiz
Interacting with UI and state

Pathway 3 | Duration: 7 hours
Create a tip calculator app that calculates the tip from user input.

Understanding state in Compose
Video
Intro to tip calculator
Video
Intro to state in Compose
Codelab
Calculate a custom tip
Codelab
Write automated tests
Codelab
Project: Create an Art Space app
Codelab
What's next?
Video
Quiz
Unit 3: Display lists and use Material Design

3 Pathways | Duration: 15 hours

Build apps that display a list of data and learn how to make your apps more beautiful with Material Design.
  • Use data classes, functions, and collections in Kotlin.
  • Create a scrollable list in an app that displays both text and images.
  • Add click listeners to interact with list items.
  • Add an app bar to the app and modify the app theme.
  • Use Material Design to build modern and intuitive user interfaces, using colors, shapes and typography.
More Kotlin fundamentals

Pathway 1 | Duration: 8 hours
Learn additional Kotlin programming concepts that will enable you to build more interesting and fun Android apps.

More Kotlin fundamentals
Video
Generics, objects, and extensions
Codelab
Use collections in Kotlin
Codelab
Higher-order functions with collections
Codelab
Practice: Classes and Collections
Codelab
Quiz
Build a scrollable list

Pathway 2 | Duration: 4 hours
Create an app that displays a scrollable list of text and images using Compose.

Intro to Affirmations app
Video
Add a scrollable list
Codelab
Change the app icon
Codelab
Practice: Build a grid
Codelab
What's next?
Video
Quiz
Build beautiful apps

Pathway 3 | Duration: 3 hours
Make your apps more beautiful and intuitive to use with Material Design, animations, and accessibility best practices.

Intro to Material Design with Compose
Video
Material Theming with Jetpack Compose
Codelab
Simple animation with Jetpack Compose
Codelab
Testing for Accessibility
Codelab
Practice: Build Superheroes app
Codelab
Project: Create a 30 Days App
Codelab
What's next?
Video
Quiz
Unit 4: Navigation and app architecture

3 pathways | Duration: 27 hours

Learn the best practices of app architecture to build more complex apps. Enhance your users' ability to navigate across, into and back out from the various screens within your app for a consistent and predictable user experience.
  • Explain activities and their lifecycles.
  • Understand Modern Android architecture.
  • Use StateFlow and UDF pattern to work with state and events.
  • Add a ViewModel to save data and state.
  • Set up and use the Navigation component with Compose.
  • Understand what responsive UI is.
  • Use window class sizes to build for different screen sizes.
  • Add a navigation drawer to an app.
Architecture Components

Pathway 1 | Duration: 9 hours
Learn about app architecture and how to use ViewModels, UI State, and StateFlow to build more complex apps.

Welcome to Unit 4
Video
Stages of the Activity lifecycle
Codelab
Intro to App architecture
Video
Architecture: The UI Layer
Video
ViewModel and State in Compose
Codelab
Write unit tests to test the ViewModel
Codelab
Practice: Add a ViewModel to Dessert Clicker
Codelab
What's next?
Video
Quiz
Navigation in Jetpack Compose

Pathway 2 | Duration: 6 hours
Learn how to use the Navigation component to build more complex apps with more screens and how to navigate and pass data between different composables.

Introduction to Navigation and Cupcake App
Video
Codelab
Test the Cupcake app
Codelab
Practice: Add navigation
Codelab
What's next?
Video
Quiz
Adapt for different screen sizes

Pathway 3 | Duration: 13 hours
In this pathway, you'll learn how to adapt your app to different screen sizes and provide a better user experience, as well as how to test your adaptive UI.

Adaptive layouts
Video
Intro to Reply app
Video
Build an adaptive app with dynamic navigation
Codelab
Build an app with an adaptive layout
Codelab
Practice: Build Sports app
Codelab
Project: Create a My City app
Codelab
What's next?
Video
Quiz
Unit 5: Connect to the internet

2 Pathways | Duration: 14 hours

Use Kotlin coroutines to perform multiple tasks at once, and learn about HTTP and REST to get data from the internet using Retrofit. Then use the Coil library to display images in your app.
  • Describe the basics of concurrency and how to use coroutines in an Android app.
  • Define and understand the data layer in Modern Android app architecture.
  • Implement a repository to centralize data access.
  • Use Retrofit to retrieve data from a remote server.
  • Load and display images using the Coil library.
  • Implement dependency injection to decouple the classes, making it easier to test, maintain, and scale the app.
Get data from the internet

Pathway 1 | Duration: 6 hours
Implement coroutines to perform tasks concurrently without blocking the app, and learn about HTTP and REST to get data from the internet.

Connect to the internet
Video
Introduction to Coroutines in Kotlin Playground
Codelab
Introduction to Coroutines in Android Studio
Codelab
Introduction to HTTP/REST
Vide
Get data from the internet
Codelab
What's next?
Video
Quiz
Load and display images from the internet

Pathway 2 | Duration: 3 hours
Apply architecture best practices to the app and use Coil to download and display images.

Architecture: The Data Layer
Video
Add repository and Manual Dependency Injection
Codelab
Load and display images from the internet
Codelab
Practice: Build amphibians app
Codelab
Project: Create a Bookshelf app
Codelab
What's next?
Video
Quiz
Unit 6: Data persistence

3 Pathways | Duration: 10 hours

Learn how to store data locally on the device and keep your apps working through any network disruptions for a smooth and consistent user experience.
  • Learn the basics of SQL to insert, update, and delete data from a SQLite database.
  • Use the Room library to add a database to an Android app.
  • Use Database Inspector to test and debug database issues.
  • Use Preference DataStore to store user preferences.
Introduction to SQL

Pathway 1 | Duration: 2 hours
Learn how to use SQL to read and manipulate data in a relational database.

Introduction to Databases and SQL
Video
Use SQL to read and write to a database
Codelab
What's next?
Video
Quiz
Use Room for data persistence

Pathway 2 | Duration: 6 hours
Use the Room library to easily create and use relational databases in an Android app.

Kotlin Flows in Practice
Videon
Testing Flows
Article
Using Room Kotlin APIs
Video
Persist Data with Room
Codelab
Read and update data with Room
Codelab
Practice: Build Bus Schedule app
Codelab
What's next?
Video
Quiz
Store and access data using keys with DataStore

Pathway 3 | Duration: 2 hours
Learn how to store simple, key-value pair data with Preferences DataStore in an Android app

Introduction to Datastore
Video
Preferences Datastore
Video
Save preferences locally with DataStore
Codelab
Project: Create a flight search app
Codelab
What's next?
Video
Quiz
Unit 7: WorkManager

1 Pathway | Duration: 6 hours

Use Android Jetpack's WorkManager API to schedule necessary background work, such as data backups or fresh content downloads, that keeps running even if the app exits or the device restarts.
  • Define long running tasks that need to run in background work.
  • Add WorkManager to an Android app.
  • Create a Worker object and enqueue work.
  • Create constraints on WorkRequests.
  • Use the Background Task Inspector to inspect and debug WorkManager.
Schedule tasks with WorkManager

Pathway 1 | Duration: 3 hours
Learn when and how to use WorkManager, an API that handles background work that needs to run regardless of whether the application process is still running.

Introduction to WorkManager
Video
Implementing WorkManager
Video
Background work with WorkManager
Codelab
Advanced WorkManager and Testing
Codelab
Practice: Build Water Me app
Codelab
Quiz
Unit 8: Views and Compose

2 Pathways | Duration: 4 hours

Learn how to use Compose and the older UI toolkit based on Views side-by-side in the same app. In this unit, you will learn interoperability APIs and best practices to add a new feature to an existing app in Views, use an existing library that uses Views, or use a UI component that is not yet available in Compose.
  • Understand the View-based UI toolkit and build app UI using XML.
  • Add a composable in an app built with Views.
  • Add Navigation component to the app and use it to navigate between fragments.
  • Use AndroidView to display views.
  • Add existing View-based UI components in a Compose app.
Android Views and Compose in Views

Pathway 1 | Duration: 3 hours
Learn the basics of building apps with Android Views and how to add a composable in an app built with Views.

Android View System
Video
Build an Android app with Views
Codelab
Compose in Views
Video
Add Compose to a legacy app
Codelab
Quiz
Views in Compose

Pathway 2 | Duration: 1 hours
Learn how to add and use existing Views inside an app built with Jetpack Compose.

Views in Compose
Video
View Interoperability in Compose
Codelab
Add Compose to a legacy app
Codelab
Quiz