Refactor your Kotlin Career

Latest Videos

Latest Chapters and Articles

Coroutine Essentials

Discover the power of coroutines in Kotlin and learn how to make your applications perform tasks concurrently and in parallel. Join Rusty and his construction crew as they streamline construction projects – and see how you can apply these same techniques to your Kotlin code!

Coroutine Essentials

Generic Variance

Create subtypes from your parameterized types using Kotlin's generic variance. In this chapter, we'll learn about covariance, contravariance, and how they can be applied in declaration-site variance and use-site variance, based on three simple rules of subtypes.

Generic Variance

Generics

Perk up your understanding of generics in Chapter 18 of Kotlin: An Illustrated Guide! Through the engaging examples of Jennifer's bakery café and its ever-evolving beverage menu, you'll learn all about generics, type parameters, type arguments, upper-bound constraints, and lots more.

Generics

Handling Runtime Exceptions

Catch some new knowledge about exception handling with Chapter 17 of 'Kotlin: An Illustrated Guide.' This chapter demystifies runtime errors, offering readers a blend of technical depth and relatable examples to master exception handling in Kotlin. Through vivid illustrations and clear, approachable explanations, learn how to navigate unexpected issues in your code gracefully. Whether you're a beginner eager to solidify your understanding or an experienced developer looking to refresh your knowledge, this chapter turns the complex topic of exceptions into an enjoyable learning experience.

Handling Runtime Exceptions

Sealed Types

In Kotlin, we can used sealed interfaces and sealed classes to make the compiler even more helpful! In this chapter, we'll learn how to get exhaustive matching with sealed types.

Sealed Types

Data Classes and Destructuring

It's easy to use data classes to give your objects superpowers like value equality, a readable toString() implementation, the ability to easily copy values, and the ability to be destructured. In this chapter, we'll learn what they are, how to declare them, and when to use them!

Data Classes and Destructuring