O'Reilly logo



Start Free Trial

No credit card required

Advanced Kotlin Programming

Video Description

Designed for developers who already have a basic understanding of Kotlin, this video course examines some of the additional major features that make the language highly extensible and unique compared to other JVM languages. You'll learn about more advanced uses for functions, class scenarios, and delegation, along with best practices for working with generics, metaprogramming, and asynchronous programming. Once you've added the skills in this video to your programming tool belt, you'll be fully proficient in Kotlin as well as a more well-rounded Java developer.

  • Understand the approach that makes Kotlin so extensible and unique compared to other JVM languages
  • Examine advanced topics like infix functions, tail recursion, and lambda extensions
  • Explore the inventive features Kotlin offers for working with classes
  • Learn how Kotlin handles concerns related to delegation
  • Dive deep into issues related to generics - constraints, covariance, and more
  • Discover the techniques Kotlin employs for metaprogramming and introspection
  • Understand how Kotlin implements asynchronous programming using co-routines

Hadi Hariri is VP of Developer Advocacy at JetBrains, the organization behind the creation of Kotlin. He's been speaking at software industry conferences for over 15 years and is well respected within the open source community. He’s the original author of Spek and Wasabi, amongst other OSS projects. He’s been closely involved in Kotlin for more than four years. Hadi is easily accessible on Twitter at @hhariri.

Table of Contents

  1. Part 1: Introduction
    1. Welcome to the Course 00:00:54
  2. Part 2: Diving Deeper into functions
    1. Local Functions in Kotlin 00:03:15
    2. Infix Functions in Kotlin 00:02:26
    3. Anonymous Functions in Kotlin 00:03:18
    4. Inline Functions in Kotlin 00:11:15
    5. Returns and Local Returns in Kotlin 00:07:22
    6. Tail Recursion in Kotlin 00:04:03
    7. Operator Overloading in Kotlin 00:05:55
    8. Lambda Extensions in Kotlin 00:10:14
    9. Invoking instances in Kotlin 00:06:52
    10. Functional Constructs in Kotlin & Summary 00:05:54
  3. Part 3: Class Scenarios
    1. Fields in Kotlin 00:03:29
    2. Late Initialization in Kotlin 00:03:22
    3. Nested Classes in Kotlin 00:05:04
    4. Companion Objects in Kotlin 00:04:28
    5. Hiding Constructors in Kotlin 00:01:27
    6. Sealed Classes in Kotlin 00:08:24
    7. Type Aliases in Kotlin & Summary 00:04:15
  4. Part 4: Delegation
    1. The Concept of Delegation in Kotlin 00:02:54
    2. Delegating Member Functions in Kotlin 00:04:22
    3. Delegating Properties in Kotlin 00:06:06
    4. Built-in Delegated Properties in Kotlin 00:04:43
    5. Local Delegates in Kotlin 00:01:17
    6. Extension Properties in Kotlin & Summary 00:02:04
  5. Part 5: Diving Deeper into Generics
    1. Generic Constraints in Kotlin 00:04:56
    2. Generics and Invariance 00:04:25
    3. Covariance in Kotlin 00:03:38
    4. Contravariance in Kotlin 00:01:44
    5. Type Projections in Kotlin & Summary 00:03:14
  6. Part 6: Metaprogramming
    1. An Introduction to Reflection 00:01:31
    2. Using Java Reflection with Kotlin 00:05:47
    3. Using Kotlin Reflection 00:13:29
    4. Type Erasure on the JVM 00:03:52
    5. Reified Generics in Kotlin 00:01:55
    6. Custom Annotations in Kotlin & Summary 00:06:35
  7. Part 7: Asynchronous Programming
    1. The Problem of Asynchronous Programming 00:04:38
    2. Coroutines in Kotlin & Coroutine Implementation in Kotlin 00:03:36
    3. Async and Await in Kotlin 00:02:49
    4. Yields in Kotlin 00:01:34
    5. Coroutines and Reactive Extensions in Kotlin & Summary 00:02:53
  8. Conclusion
    1. Course Summary 00:00:35