How does suspension work in Kotlin coroutines?
A deep explanation of how suspension works in Kotlin coroutines.
Effective Kotlin Item 33: Consider factory functions instead of constructors
What factory functions are and why they are so important patterns for object creation.
Effective Kotlin Item 46: Avoid member extensions
What are member extensions, how they are possible and why we should avoid using them.
Kotlin Coroutines dispatchers
Where should we use each dispatcher from the Kotlin coroutines library
Effective Kotlin Item 45: Consider extracting non-essential parts of your API into extensions
What are the differences between members and extensions, and in what cases we should prefer one over another.
Effective Kotlin Item 44: Respect the contract of compareTo
What the contract of the compareTo is and why we should care.
Effective Kotlin Item 43: Respect the contract of hashCode
What the contract of the hashCode is and why we should care.
Effective Kotlin Item 42: Respect the contract of equals
What the contract of the equals is and why we should care.
Kt. Academy new logo: Phoenix
Why we decided to change our logo, and what is the symbolism of Phoenix.
Effective Kotlin Item 41: Use enum to represent a list of values
When should we use enum classes, and when sealed classes instead? What are the advantages of both approaches?
Effective Kotlin Item 40: Prefer class hierarchies to tagged classes
What tagged classes are and why we should use class hierarchies instead of them.
Effective Kotlin Item 39: Use sealed classes and interfaces to express restricted hierarchies
Sealed classes and interfaces might not look like a big deal, but they changed a lot in the way we structure programs.
Effective Kotlin Item 38: Use function types or functional interfaces to pass operations and actions
Kotlin introduced support for function types and function interfaces, and they should be used to represent operations and actions as objects.
Effective Kotlin Item 37: Use the data modifier to represent a bundle of data
Data modifier is a powerful tool. Let's learn about how it works, what are its perils and dangers.
Effective Kotlin Item 36: Prefer composition over inheritance
Years of OOP made us overuse inheritance. Instead, we should more often use composition, that is safer and more explicit. More often, but not always...
More articles on