Android Studio Sign in
schoolTraining course
Android Basics with Compose is a self-paced, online course on how to build Android apps using the latest best practices. The course covers the basics of building apps with Jetpack Compose, the recommended toolkit for building adaptive user interfaces on Android.
  • Understand the fundamentals of Kotlin and Jetpack Compose
  • Build basic Android apps
  • Use Jetpack libraries and modern Android development practices
  • Create adaptive layouts optimized for different display sizes
  • 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.

codeBefore you begin
Codelab
video_libraryWelcome to Android Basics with Compose
Video
codeYour first program in Kotlin
Codelab
codeCreate and use variables in Kotlin
Codelab
codeCreate and use functions in Kotlin
Codelab
codePractice: Kotlin Basics
Codelab
video_libraryWhat's next?
Video
quizQuiz
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.

video_libraryIntroduction to Android Studio
Video
codeDownload and install Android Studio
Codelab
codeCreate your first Android app
Codelab
codeRun your first app on the Android Emulator
Codelab
codeHow to connect your Android Emulator
Codelab
video_libraryWhat's next?
Video
quizQuiz
Build a basic layout

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

video_libraryIntro to Jetpack Compose
Video
video_libraryDesign a birthday card app
Video
codeBuild a simple app with text composables
Codelab
codeAdd images to your Android app
Codelab
codePractice: Compose Basics
Codelab
codeProject: Create a business card app
Codelab
video_libraryWhat's next?
Video
quizQuiz
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.

video_libraryKotlin Fundamentals
Video
codeWrite conditionals in Kotlin
Codelab
codeUse nullability in Kotlin
Codelab
codeUse classes and objects in Kotlin
Codelab
codeUse function types and lambda expressions in Kotlin
Codelab
codePractice: Kotlin Fundamentals
Codelab
video_libraryWhat's next?
Video
quizQuiz
Add a button to an app

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

video_libraryIntro to Dice Roller app
Video
codeCreate an interactive Dice Roller app
Codelab
codeUse the debugger in Android Studio
Codelab
codePractice: Click behavior
Codelab
video_libraryWhat's next?
Video
quizQuiz
Interacting with UI and state

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

video_libraryUnderstanding state in Compose
Video
video_libraryIntro to tip calculator
Video
codeIntro to state in Compose
Codelab
codeCalculate a custom tip
Codelab
codeWrite automated tests
Codelab
codeProject: Create an Art Space app
Codelab
video_libraryWhat's next?
Video
quizQuiz
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.

video_libraryMore Kotlin fundamentals
Video
codeGenerics, objects, and extensions
Codelab
codeUse collections in Kotlin
Codelab
codeHigher-order functions with collections
Codelab
codePractice: Classes and Collections
Codelab
quizQuiz
Build a scrollable list

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

video_libraryIntro to Affirmations app
Video
codeAdd a scrollable list
Codelab
codeChange the app icon
Codelab
codePractice: Build a grid
Codelab
video_libraryWhat's next?
Video
quizQuiz
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.

video_libraryIntro to Material Design with Compose
Video
codeMaterial Theming with Jetpack Compose
Codelab
codeSimple animation with Jetpack Compose
Codelab
codeTesting for Accessibility
Codelab
codePractice: Build Superheroes app
Codelab
codeProject: Create a 30 Days App
Codelab
video_libraryWhat's next?
Video
quizQuiz
Unit 4: Navigation and app architecture

3 pathways | Duration: 28 hours

Learn app architecture best practices, how to implement navigation, and how to build adaptive UIs for a great user experience on any screen size.
  • 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.
  • Learn the principles of adaptive and responsive design.
  • Use window size classes to create adaptive layouts for multiple form factors.
  • 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.

video_libraryWelcome to Unit 4
Video
codeStages of the Activity lifecycle
Codelab
video_libraryIntro to App architecture
Video
video_libraryArchitecture: The UI Layer
Video
codeViewModel and State in Compose
Codelab
codeWrite unit tests to test the ViewModel
Codelab
codePractice: Add a ViewModel to Dessert Clicker
Codelab
video_libraryWhat's next?
Video
quizQuiz
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.

video_libraryIntroduction to Navigation and Cupcake App
Video
Codelab
codeTest the Cupcake app
Codelab
codePractice: Add navigation
Codelab
video_libraryWhat's next?
Video
quizQuiz
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.

video_libraryAdaptive layouts
Video
video_libraryIntro to Reply app
Video
codeBuild an adaptive app with dynamic navigation
Codelab
codeBuild an app with an adaptive layout
Codelab
codePractice: Build Sports app
Codelab
codeProject: Create a My City app
Codelab
video_libraryWhat's next?
Video
quizQuiz
Unit 5: Connect to the internet

2 Pathways | Duration: 9 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.

video_libraryConnect to the internet
Video
codeIntroduction to Coroutines in Kotlin Playground
Codelab
codeIntroduction to Coroutines in Android Studio
Codelab
video_libraryIntroduction to HTTP/REST
Vide
codeGet data from the internet
Codelab
video_libraryWhat's next?
Video
quizQuiz
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.

video_libraryArchitecture: The Data Layer
Video
codeAdd repository and Manual Dependency Injection
Codelab
codeLoad and display images from the internet
Codelab
codePractice: Build amphibians app
Codelab
codeProject: Create a Bookshelf app
Codelab
video_libraryWhat's next?
Video
quizQuiz
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.

video_libraryIntroduction to Databases and SQL
Video
codeUse SQL to read and write to a database
Codelab
video_libraryWhat's next?
Video
quizQuiz
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.

video_libraryKotlin Flows in Practice
Videon
subjectTesting Flows
Article
video_libraryUsing Room Kotlin APIs
Video
codePersist Data with Room
Codelab
codeRead and update data with Room
Codelab
codePractice: Build Bus Schedule app
Codelab
video_libraryWhat's next?
Video
quizQuiz
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

video_libraryIntroduction to Datastore
Video
video_libraryPreferences Datastore
Video
codeSave preferences locally with DataStore
Codelab
codeProject: Create a flight search app
Codelab
video_libraryWhat's next?
Video
quizQuiz
Unit 7: WorkManager

1 Pathway | Duration: 3 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.

video_libraryIntroduction to WorkManager
Video
video_libraryImplementing WorkManager
Video
codeBackground work with WorkManager
Codelab
codeAdvanced WorkManager and Testing
Codelab
codePractice: Build Water Me app
Codelab
quizQuiz
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.

video_libraryAndroid View System
Video
codeBuild an Android app with Views
Codelab
video_libraryCompose in Views
Video
codeAdd Compose to a legacy app
Codelab
quizQuiz
Views in Compose

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

video_libraryViews in Compose
Video
codeView Interoperability in Compose
Codelab
codeAdd Compose to a legacy app
Codelab
quizQuiz
Morty Proxy This is a proxified and sanitized view of the page, visit original site.