Training course
        
        
    Android Basics with Compose
            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
Prerequisities
- 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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
      
     
    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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
          
      
     
    
      Build a basic layout
    
    
      
         
        
          
Pathway 3 | Duration: 3 hours
Build an Android app with a simple user interface that displays text and images.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
      
     
  
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
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
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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
      
     
    Add a button to an app
    
      
         
        
          
Pathway 2 | Duration: 6 hours
Learn how to respond to a button click in an Android app.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
      
     
    Interacting with UI and state
    
      
         
        
          
Pathway 3 | Duration: 7 hours
Create a tip calculator app that calculates the tip from user input.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
      
     
  
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
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
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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
      
     
    Build a scrollable list
    
      
         
        
          
Pathway 2 | Duration: 4 hours
Create an app that displays a scrollable list of text and images using Compose.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
      
     
    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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
      
     
  
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
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
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: 28 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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
      
     
    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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
      
     
    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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
      
     
  
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
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
        Navigate between screens with Compose
Codelab
        Test the Cupcake app
Codelab
        Practice: Add navigation
Codelab
        What's next?
Video
        Quiz
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: 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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
          
      
     
    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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
          
      
     
  
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
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.
      
      
        
          
        
          
        
          
        
          
      
     
    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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
        
          
        
          
      
     
    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
      
      
        
          
        
          
        
          
        
          
        
          
        
          
      
     
  
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
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
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: 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.
      
      
        
          
        
          
        
          
        
          
        
          
        
          
      
     
  
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.
      
      
        
          
        
          
        
          
        
          
        
          
      
     
    Views in Compose
    
      
         
        
          
Pathway 2 | Duration: 1 hours
Learn how to add and use existing Views inside an app built with Jetpack Compose.
      
      
        
          
        
          
        
          
        
          
      
     
  
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
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
        