Course Outline

Introduction

Refresher on Kotlin Basics

Using Advanced Functions in Kotlin

  • Using Nested Functions to Reuse Functionality in Kotlin
  • Using the Infix Notation to Call Functions in Kotlin
  • Declaring Anonymous Functions in Kotlin
  • Using the Inline Modifier for Efficiency in Kotlin
  • Implementing Returns and Local Returns When Working with Advanced Functions in Kotlin
  • Implementing Tail Recursion for Optimization in Kotlin
  • Using Operator Overloading in Kotlin
  • Using Lambdas with Receivers to Create Restrictions on DSL's in Kotlin
  • Invoking Instances in Kotlin
  • Using Functional Constructs in Kotlin
    • Function Composition
    • Currying
    • Other Constructs
  • Summary of Advanced Functional Aspects of Kotlin

Exploring Class Scenarios in Kotlin

  • Implementing Fields in Kotlin
  • Using the "lateinit" Modifier  in Kotlin
  • Understanding Nested and Inner Classes in Kotlin
  • Defining "Static Methods" in Kotlin Using Companion Objects
  • Hiding Class Constructors in Kotlin
  • Marking Classes as Sealed in Kotlin
  • Using Type Aliases in Kotlin
  • Summary of Advanced Features of Kotlin for Classes

Implementing Delegation in Kotlin

  • Understanding the Concept of Member Delegation in Kotlin
  • Delegating Member Functions to Another Class in Kotlin
  • Delegating Properties in Kotlin for Code Reuse Efficiency
  • Using Built-in Delegated Properties in Kotlin
  • Delegating Local Properties in Kotlin for Code Reuse
  • Implementing Extension Properties in Classes in Kotlin
  • Summary of the Different Aspects of Delegation in Kotlin

Gaining an In-Depth Understanding of Generics in Kotlin

  • Understanding Generic Constraints
  • Understanding Variance and Invariance in Generics
  • Using the "out" Modifier to Express Covariance in Generics in Kotlin
  • Expressing Contravariance in Kotlin
  • Exploring the Concept of Type Projections and Star Projections in Kotlin
  • Summary of Advanced Generics in Kotlin

Metaprogramming in Kotlin

  • Overview of Reflection
  • Using Java Reflection with Kotlin Using the Reflection API
  • Using Kotlin's Reflection API
  • Handling Type Erasure in Kotlin
  • Using Reified Generics in Kotlin
  • Defining Custom Annotations in Kotlin
  • Summary of Metaprogramming and Introspection Techniques in Kotlin

Performing Asynchronous Programming in Kotlin

  • Understanding the Problem of Asynchronous Programming
  • Implementing Asynchronous Programming and Coroutines in Kotlin
  • Implementing Async and Await in Kotlin Using Coroutines
  • Implementing Yield in Kotlin
  • Understanding the Advantages of Coroutines Over Reactive Extensions
  • Summary of Coroutines in Kotlin

Summary and Conclusion

Requirements

  • An understanding of the fundamentals of Kotlin

Audience

  • Developers interested in gaining a deeper knowledge of Kotlin programming
 21 Hours

Testimonials (7)

Upcoming Courses