Skip to main content
00:00/00:00
Lecture 33 of 325

Passing Parameters

Download Course (Free)

Course Content

0 / 325 completed
Section 1: Introducing Android App Development with Kotlin8 videos

Version Check

1m

What Is Kotlin

1m

Course Introduction

2m

Benefit 1 - Conciseness

6m

Why Native Android Development

1m

Benefit 2 - Improved Null Safety

3m

Tradeoffs and Considerations

2m

Benefit 3 - Functional Programming

2m
Section 2: Course Overview2 videos

Course Overview

1m

Course Overview

2m
Section 3: Building an Android App with Kotlin6 videos

Developing Android Applications Kotlin Big Picture

1m

Building Great UIs with Material Design

2m

Adding Functionality with Google APIs

2m

Final Summary

1m

Better and Faster Code with Android Jetpack

3m

Demo - Android Studio Features

3m
Section 4: Creating and Running a Kotlin App with Android Studio8 videos

Introduction

1m

Downloading Android Studio

2m

Creating a Kotlin Project

6m

Modifying the Activity Layout

5m

Adding Kotlin Code to the Activity

11m

Running the App Within an Emulator

6m

Summary

1m

Understanding the Parts of the Android Studio Layout Designer

4m
Section 5: Describing Types with Kotlin12 videos

Using Kotlin with Android

2m

Properties

3m

Basic Types and Variable Declarations

3m

Defining Types

1m

Primary Constructor

4m

Demo. CourseInfo & NoteInfo

6m

Functions

2m

Instance Initialization

2m

Passing Parameters

2mNow Playing

Summary

2m

Demo. DataManager Initialization

8m

Demo. DataManager Properties

5m
Section 6: Understanding Activities and Activity Layout Interaction10 videos

What Is an Activity

1m

Demo. Working with ConstraintLayout - View Constraints

7m

Activity Code Layout Relationship

2m

Activity UI

2m

Demo. Working with ConstraintLayout - Parent Constraints

10m

Demo. Activity Code Layout Relationship

11m

Populating a Spinner

1m

ConstraintLayout Class

3m

Summary

2m

Demo. Populating a Spinner

11m
Section 7: Developing a Multi-screen User Experience11 videos

What's Next for the App

1m

Activity Interaction

2m

Demo. Starting an Activity with an Intent

11m

Demo. Adding the NoteList Activity

13m

Singletons and Data Classes

3m

Describing Operations with Intents

2m

Demo. Populating the NoteList Activity

8m

Demo. Using Data Classes

10m

Summary

2m

Demo. Handling Note Selection and Sending the Intent

12m

Demo. Retrieving Intent Info and Displaying a Note

15m
Section 8: Using Options Menus and Action Bar Actions11 videos

Options Menus

2m

Demo. Adding Options Menu Items

7m

Demo. Handling Options Menu Item Selections

7m

Demo. Menu Items as App Bar Actions

4m

Menu Items as App Bar Actions

2m

Changing Menu Items at Runtime

1m

Demo. Adding Support for Changing Menu Items

7m

Null Safety

1m

Demo. Changing Menu Item Appearance and State

6m

Null Safety Operatiors

2m

Demo. App Bar Actions with Text

6m
Section 9: Understanding Activity Lifecycle10 videos

App User Experience and Activity Lifecycle

1m

Activity Lifecycle Methods

3m

Demo. Saving Persistent Data Items

7m

Demo. Creating a New Perstent Data Item

6m

App Activity Flow and Tasks

3m

Demo. Refreshing Displayed Content

8m

Demo. The Importance of Instance State

10m

Demo. Saving Restoring Instance State

10m

Activity Instance State

2m

Demo. Verifying Instance State Behavior

7m
Section 10: Creating and Configuring a Project with Android Studio7 videos

Overview and Demo App Resources

1m

Creating a Project with Android Studio

4m

Understanding Android Studios UI

2m

Understanding the Android Studio Project Structure

4m

Exploring and Configuring Tool Windows in Android Studio

5m

Customize Android Studio Settings

2m

Summary

1m
Section 11: Configuring Build Variants and Dependencies Using Gradle7 videos

Default Build Configuration for Android Projects

3m

Understanding Gradle Build Files

7m

Custom Build Variants

3m

Understanding Android’s Gradle Build System

3m

Configuring and Running Custom Build Variants for an Android Projec

7m

Summary

1m

Adding Dependencies to a Project

5m
Section 12: Using Logcat for Debugging4 videos

Enabling Debugging on a Device and Viewing Log Messages in Logcat

5m

Analysing Stacktraces Using Logcat

6m

Summary

1m

Writing and Filtering Messages in Logcat

9m
Section 13: Using Android Studio Debugger and Breakpoints3 videos

Using Android Studio Debugger and Breakpoints

7m

Configuring Breakpoints and Using Code Stepping Options

9m

Adding Conditional Breakpoints, Evaluating Expressions, and Watching Variables

9m
Section 14: Implementing Local Unit Tests5 videos

Understanding the Testing Tools Landscape in Android

4m

Setting up a Project for Unit Testing

3m

Summary

1m

Handling Dependencies in Unit Tests

7m

Adding Local Unit Tests to Your App

9m
Section 15: Implementing Instrumented and UI Tests3 videos

Adding Instrumented Unit Tests to Your App

8m

Summary

1m

Adding Espresso UI Tests to Your App

8m
Section 16: Adapting to Different Users3 videos

Adding String Resources for Localization

9m

Adding Dynamic Images & Resources

7m

Project Overview

5m
Section 17: Developing Themes2 videos

Adding Styles

11m

Adding Themes

10m
Section 18: Using Advanced Adaptation Methods4 videos

Handling Orientation Changes

8m

Changing Resources Based on App State

8m

Changing Layout for Landscape Use Pt 1

11m

Changing Layout for Landscape Use Pt 2

6m
Section 19: Getting Started13 videos

UI vs. UX

3m

GloboTour - App Overview

2m

The Secret behind High-quality Apps

3m

GloboTour - App Structure

2m

Project Setup with Navigation Component

5m

Exploring Project Structure

11m

What Is a Preference

2m

What Is the AndroidX Preference Library

2m

App Structure - GloboChat

2m

SharedPreferences and PreferenceDataStore

3m

Exploring the Project Structure

16m

Getting Started

4m

Getting Started

3m
Section 20: Using Navigation Drawers6 videos

Overview

1m

Adding DrawerLayout and NavigationView

5m

Connecting Navigation Drawer with Navigation Component

14m

Adding Menu Items and Header Layout

9m

Fixing a Bug - Improving User Experience

3m

Summary and Up Next

1m
Section 21: Implementing RecyclerView6 videos

Understanding the Role of an Adapter

3m

Understanding ViewHolder Design Pattern

5m

Setting up Resources - Data Source and List Item Layout

7m

Exercise - Implement Favorite List RecyclerView with Adapter

1m

Inspecting Adapter Behavior

5m

Implementing Adapter - RecyclerView.AdapterViewHolder

19m
Section 22: Working with Items in RecyclerView6 videos

Adding OnClickListener on List Items

5m

Adding Functionality - Mark an Item as Favorite

7m

Adding and Deleting Items from a List

3m

Exercise Solution - Implementing RecyclerView for Favorites Screen

4m

Improving User Experience and Module Wrap-up

3m

GridLayoutManager and StaggeredGridLayoutManager

5m
Section 23: Adding a Bottom Navigation Bar4 videos

Connecting Bottom Navigation Bar with Navigation Component

5m

Summary and Up Next

1m

Adding BottomNavigationView - Bottom Navigation Tabs

5m

Improving User Experience

7m
Section 24: Improving User Experience for a High-quality App4 videos

Drag to Rearrange Items in RecyclerView

8m

How to Verify Guidelines to Build High-quality Apps

3m

Wrapping up - Other Important Courses to Explore

2m

Swipe to Delete an Item from RecyclerView

13m
Section 25: Managing Activity State with ViewModel9 videos

Activities - More Than Just a Pretty Face

2m

Managing Activity State with ViewModel

2m

Adding a ViewModel and Build Dependencies

8m

There's a Bug in Our App

4m

That Bug's Fixed, but We Just Found Another One

4m

Accessing Our ViewModel with a Lazy Property

7m

Restoring the Activity State

5m

Managing More Complex State with ViewModel

7m

Verifying App Behavior

2m
Section 26: Maintaining Activity State during System-initiated Shutdowns6 videos

Activity Destruction Effects on State

2m

Durable Activity State

3m

Persisting State of a Simple Value

7m

Restoring State of a Simple Value

4m

Identifying the Need for Durable State

8m

Summary

1m
Section 27: Persisting Complex Activity State6 videos

Activity State and Data Model Cooperation

2m

Moving the Details to the ViewModel

6m

We're Still Losing Some of Our Activity State

3m

Verifying State Management Behavior

4m

Persisting State of an Object Graph

8m

Effectively Using ViewModel and Durable State Together

9m
Section 28: Subscribing to Lifecycle Events9 videos

Cooperating with Activity Lifecycle

2m

Our App's Get-together Feature

2m

Managing Location with Activity Functions

8m

Fixing the Location Resource Leak

6m

Creating a Lifecycle Observer

4m

Improving Lifecycle Handling with Events

3m

Observing Lifecycle Events

4m

Connecting the Observer to the Lifecycle

6m

Summary

1m
Section 29: Determining Lifecycle State9 videos

Introduction

1m

Events Are Only Part of the Story

2m

Lifecycle-driven Asynchronous Operations

4m

Adding the Messaging Manager

8m

Lifecycle State

2m

We're Leaking Connections

4m

Verifying State in Asynchronous Operations

5m

The Leak Is Fixed

4m

Summary

1m
Section 30: Building a Settings UI4 videos

Steps Required to Build a Settings Screen

2m

PreferenceScreen, PreferenceCategory, and SwitchPreferenceCompat

13m

EditTextPreference, ListPreference, and PreferenceCategory

11m

Preference and CheckBoxPreference

4m
Section 31: Working with Preference Objects8 videos

Accessing a Preference Object in a Fragment or Activity

4m

Opening a Fragment from the Settings Screen

7m

Opening an Activity from the Settings Screen

1m

Reading Preference Values

6m

Using the OnPreferenceChangeListener Interface

9m

OnPreferenceChangeListener vs. OnSharedPreferenceChangeListener

2m

Using the OnSharedPreferenceChangeListener Interface

11m

Summary and Up Next

2m
Section 32: Creating a Settings UI in Code3 videos

Creating a Sub-settings Screen

3m

Building a Settings UI in Kotlin Code

11m

Exploring MultiSelectListPreference

6m
Section 33: Exploring Miscellaneous Concepts7 videos

Opening a Webpage Using the Intent from Settings Screen

2m

SummaryProvider - Dynamically Update Preference Summary

5m

Controlling the Visibility of Preferences

1m

When to Use PreferenceDataStore

2m

Assignment - Do It Yourself

1m

Using PreferenceDataStore

13m

Course Summary and Wrap Up

1m
Section 34: Pagination in Android5 videos

Overview

1m

External APIs

2m

User Experience

2m

Paging the Data

2m

Android Paging Library

1m
Section 35: Pagination - Under the Hood2 videos

Android Paging Library Components

3m

Data Sources Overview

3m
Section 36: Creating Custom Data Sources5 videos

Android Applications

4m

Creating DataSource

7m

Summary

1m

Creating DataSource.Factory

3m

Handling Data Requests

12m
Section 37: Building the Paginated RecyclerView4 videos

Creating RecyclerView and ViewHolder

3m

PagedListAdapter and DiffUtil

5m

Building ViewModel

6m

Using BoundaryCallback

5m
Section 38: Updating the Paginated Data2 videos

LiveData

1m

Publishing Changes to DataSource

4m
Section 39: Using Room for Pagination1 videos

Room Dao

8m
Section 40: Creating and Querying a SQLite Database3 videos

Querying Basics

9m

Creating a Database

12m

Testing Our Database

9m
Section 41: Advanced Database Querying2 videos

Querying Subsets

7m

Parameterizing Queries and Joins

8m
Section 42: Using the Repository Pattern4 videos

Overview of Data Access Best Practices

5m

Designing a Repository Pattern

7m

Implementing the Repository Pattern - Part 1

7m

Implementing the Repository Pattern - Part 2

10m
Section 43: Executing Background Tasks with WorkManager4 videos

Using WorkManager

4m

Work Constraints

2m

Demo - Using WorkManager

12m

Demo - Work Constraints

6m
Section 44: WorkManager Advanced Techniques4 videos

Retrying Work

4m

Demo - Retrying Work

6m

Demo - Work Chains

10m

Work Chains

5m
Section 45: Creating Coroutines6 videos

Coroutine Fundamentals

2m

History of Android Background Tasks

2m

Demo - Structured Concurrency and Coroutine Scopes

4m

Structured Concurrency and Coroutine Scopes

3m

Demo - Coroutine Fundamentals

6m

Why You Should (Almost) Never Use runBlocking

2m
Section 46: Handling Coroutine Errors4 videos

Demo - Cancelling Coroutines

5m

Coroutine Exception Handling

2m

Cancelling Coroutines

2m

Demo - Coroutine Exception Handling

5m
Section 47: Taking Advantage of Android6 videos

Channels

3m

Demo - Channels

6m

Coroutines with Android Jetpack

2m

Demo - Android Coroutine Basics

7m

Demo - Coroutines with Android Jetpack

7m

Return of the WorkManager

2m
Section 48: Android Notifications with Kotlin6 videos

Android Notifications with Kotlin

4m

Creating a Notification

7m

Notification Anatomy

10m

Notification Actions

5m

Notification Channels

9m

Starting the App from a Notification

2m
Section 49: Starting Activities with Notifications4 videos

The Back Stack

1m

Starting Activities with Notifications

4m

Regular vs. Special Activities

4m

Pending Intents

5m
Section 50: Styling Notifications4 videos

Inbox Style

3m

Big Picture Style

6m

Styling Notifications

5m

Messaging Style

18m
Section 51: Home Screen Widgets with Kotlin4 videos

Home Screen Widgets with Kotlin

10m

Updating a Widget

5m

Launching the App from a Widget

5m

Showing a Collection in a Widget

9m
Section 52: Creating Compound Components6 videos

Creating Compound Components

1m

Intro to Compound Components

1m

Communicating between View and Activity

15m

A Kotlin Approach to Communication

9m

Custom Attributes

8m

Combining Views into a Compound Component

14m
Section 53: Extending Views11 videos

Extending Views

1m

Intro to Extending Views

1m

Customizing Existing Views

11m

Intro to the Canvas

8m

Coping with Clipping

4m

Selecting No Color

3m

Using Custom Attributes

2m

Extended View Communication

4m

Supporting Different Screen Sizes

5m

Compound Component vs. Extended View

1m

Considerations When Extending Views

6m
Section 54: Creating Custom Views5 videos

Creating Custom Views

2m

Padding and Positioning

3m

Painting Circles

7m

Drawing with Math

4m

Creating a View from Scratch

12m
Section 55: Custom View Positioning and Sizing5 videos

Custom View Positioning and Sizing

1m

Custom Sizing with Attributes

3m

Understanding onMeasure()

2m

Measuring Your View

3m

Making Your View Size Flexible

10m
Section 56: Making Your Custom View Interactive5 videos

Making Your Custom View Interactive

1m

Handling Motion Events

2m

Making the Color Dial Interactive

3m

Tying It All Together

3m

User Input Coordinates

9m
Section 57: Introduction to Android Accessibility2 videos

Accessibility and Screen Readers

3m

Setting Up TalkBack

4m
Section 58: Designing Views with Accessibility in Mind3 videos

Optimizing Content for TalkBack

6m

Pain Points in Accessible Navigation

5m

Navigating with TalkBack

9m
Section 59: Designing for Vision Disabilities2 videos

Improving Contrast

6m

Designing for Color Blindness

7m