Introduction
  • What You'll Learn in this Course
  • Make the Most of this Course!
  • Who's Using Kotlin?
Get Ready
  • Introduction
  • Install the Java JDK 8
  • Install Android Studio
  • Set Up a Project in Android Studio
  • Recap
Kotlin Basics
  • Introduction
  • Variables and Data Types
  • Null Safety in Kotlin
  • Conditionals: "if" Expressions
  • Conditionals: "when" Expressions
  • Collections
  • "for" Loops
  • "while" Loops
  • Functions
  • Get Ready for Serious Kotlin Coding (Set up IntelliJ IDEA)
  • Create a main() Function
  • Challenge: Reading the User's Name from the Console
  • Challenge: Using Collections and Loops
  • Named Arguments & Default Parameter Values
  • Exceptions
  • Why No Checked Exceptions?
  • Recap
Functional Programming
  • Introduction
  • What is Functional Programming?
  • Functional Programming II
  • Lambdas & Higher-Order Functions
  • Use map() and flatMap()
  • Use take() and drop()
  • Use zip()
  • Challenge: Functional Programming for Data Analysis
  • Chain Functions Together
  • Lazy Sequences
  • Case Study: Performance of Lazy Sequences
  • Code Along: Infinite Lazy Sequence of All Prime Numbers
  • Use "let" Operator for Scoping and Nullables
  • Use "with" for Many Calls on the Same Object
  • Use "use" for Closeable (like try-with-resources)
  • Inline Functions
  • Recap
Object-Orientation in Kotlin
  • Introduction
  • Classes
  • Properties with Getters & Setters
  • Primary and Secondary Constructors
  • Methods
  • Extension Functions
  • Data Classes
  • Enums
  • Inheritance
  • Code Along: Inheritance Example
  • Abstract Classes
  • Interfaces
  • Overriding Rules
  • Smart Casts
  • Visibilities
  • Companion Objects for "Static" Members
  • Object Declarations as Singletons
  • Packages and Imports
  • Generic Classes
  • Generic Functions
  • Covariance
  • Covariance: Java vs Kotlin
  • Covariance vs Contravariance: "out" and "in"
  • Recap
Kotlin for Android -- Fundamentals
  • Introduction
  • Create the App Project
  • Understand the Android Versions
  • Create a CardView Layout and Add UI Elements
  • Use the "Kotlin Android Extensions"
  • Challenge: Set Texts and Image Source Programmatically
  • Challenge Solution
Kotlin for Android -- Implement a RecyclerView
  • Introduction
  • What is a RecyclerView?
  • Create the Data Class "Habit"
  • Implement the "HabitsAdapter" - Part I
  • Implement the "HabitsAdapter" - Part II
  • Implement the "HabitsAdapter" - Part III
Kotlin for Android -- Let Users Create Habits
  • Introduction
  • Add a Menu
  • Add a Second Activity
  • Use Intents to Switch Activities
  • Challenge: Build the Activity Layout
  • Challenge Solution
  • Let Users Choose an Image
  • Get the Selected Image Back (onActivityResult)
  • Show Error Messages to the User
  • Code Along: An Extension Function for "EditText"
Kotlin for Android -- Use SQLite the Kotlin Way!
  • Introduction
  • Introducing SQLite