Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Kotlin for Android: Build Your First Android App with Kotlin
Intro
What You'll Learn (4:51)
Who's Using Kotlin? (2:51)
Best Way to Follow Along (2:43)
Setup
Intro (1:44)
Install the JDK (3:11)
Install Android Studio (7:11)
Set up the Project (12:04)
Summary (0:28)
Diving Into Kotlin
Intro (1:26)
Variables & Data Types (8:26)
On the Importance of Immutability (3:50)
Null Safety (8:55)
`if` Conditions (8:20)
`when` Conditions (8:36)
Collections (9:41)
`for` Loops (5:15)
`while` Loops (3:41)
Functions (6:22)
Set up IntelliJ to Run Simple main() Functions (4:59)
The main() Function (2:33)
Coding Exercise: Conditionals
Coding Exercise: Loops
Named Arguments & Default Values for Parameters (5:43)
Exceptions (6:12)
There Are No Checked Exceptions in Kotlin (5:31)
Summary (1:52)
Functional Programming in Kotlin
Intro (1:22)
On Functional Programming (3:11)
Concepts of Functional Programming (4:14)
Lambdas & Higher-Order Functions (10:06)
Using `map` & `flatMap` (7:47)
Using `take` and `drop` (6:27)
Using `zip` (4:44)
Coding Exercise: Functional Programming
Chaining Function Calls (6:19)
Lazy Sequences (8:17)
Performance of Lazy Sequences (8:10)
Infinite Sequence of All Prime Numbers (12:28)
Using the Scope Function `let` (6:26)
Using the Scope Function `with` (3:55)
Using `use` for Try-With-Resources (4:29)
Inline Functions (6:59)
Summary (2:23)
Object-Oriented Programming in Kotlin
Intro (1:59)
Classes (2:26)
Properties (6:01)
Constructors (8:26)
Methods (3:46)
Extension Functions (6:23)
Data Classes (9:50)
Enum Classes (6:12)
Inheritance (5:21)
Inheritance - An Example (5:57)
Abstract Classes (5:47)
Interfaces (7:18)
Overriding (8:52)
Smart Casts (7:55)
Visibilities (8:47)
Companion Objects (6:31)
Creating Singletons Using `object` (5:09)
Packages & Imports (4:15)
Generic Classes (7:52)
Generic Functions (4:59)
Covariance (7:06)
Covariance: Java vs Kotlin (10:34)
Contravariance & Using `in` vs `out` (9:44)
Summary (1:47)
Kotlin for Android Part I - Starting Out
Intro (2:50)
Create the App Project (4:51)
On Android Versions (3:08)
Create a CardView Layout (9:43)
Kotlin Android Extensions (8:55)
Coding Exercise: Use the Kotlin Android Extensions
Exercise Solution: Kotlin Android Extensions (3:30)
Kotlin for Android Part II - RecyclerView
Intro (1:01)
Introducing RecyclerView (5:17)
The Habit Data Class (4:22)
Create the RecyclerView Adapter (5:00)
Implement onCreateViewHolder() (3:35)
Implement onBindViewHolder() (9:43)
Kotlin for Android Part III - Habit Creation
Intro (1:36)
Add the Menu Resource (1:57)
Override onCreateOptionsMenu (3:09)
Override onOptionsItemSelected and Use Intents (7:14)
Coding Exercise: Create the Activity's Layout
The Layout for Creating Habits (8:01)
Create an Intent to Select an Image (6:44)
Override onActivityResult() to Retrieve Selected Image (8:11)
Display Errors to the User (7:39)
Add an Extension Function isBlank() (3:42)
Kotlin for Android Part IV - SQLite
Intro (1:11)
Introducing SQLite (1:28)
Add the Database Contract (4:14)
Use SQLiteOpenHelper (6:32)
Create the Database Store for HabitTrainer (8:03)
On the Boilerplate Surrounding SQLite Operations on Android (4:08)
Create an Extension Function for SQL Transactions (6:51)
Improve Your Extension Function Further (6:33)
Store Habits in the Database (9:22)
Read All Habits from the Database (9:00)
Coding Exercise: Create an Extension for db.query()
Add an Extension Function to Perform Queries (4:27)
Add an Extension Function for Using Cursors (7:58)
Bonus: How to Easily Transfer Images to Your Virtual Device (1:42)
Exceptions
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock