Kt. Academy Logo
WorkshopsBooksArticlesStore

Endre Deak

Software architect with 15 years of experience, currently working on building infrastructure for AI. I think Kotlin is one of the best programming languages ever created.

Reviewed articles

Generics in Kotlin

The essence of how generics work in Kotlin.

Data classes in Kotlin

What are data classes in Kotlin and how do we use them.

Marcin Moskała
Marcin Moskała

Extensions in Kotlin

What are extensions in Kotlin and how do we use them.

Implementing Multiplatform Kotlin Mobile

How in Kotlin we can implement Android and iOS projects with shared logic.

Implementing Multiplatform Kotlin library

How in Kotlin we can use multiplatform capabilities to distribute the same code to multiple platforms.

Using Multiplatform Kotlin

The essence of using multiplatform Kotlin capabilities and definition common elements.

Sealed classes and interfaces in Kotlin

What are sealed classes and interfaces in Kotlin and how do we use them.

Kotlin and Java interoperability: Traps and gotchas

The parts of Kotlin and Java interoperability that might be surprising or counterintuitive.

Kotlin and Java interoperability: Useful annotations

Learn about useful Kotlin annotations, that decide that it is compiled to on JVM.

Kotlin and Java interoperability: Properties and annotations

Kotlin property is Java getter, setter, field and possibly more. So what to do, when you need to annotate or use a specific JVM element?

Kotlin and Java interoperability: Types

See surprising transitions that happens on types when you interoperate between Kotlin and Java.

Objects in Kotlin

What is object expression, object declaration and companion objects, and how we use them.

Kotlin Contracts

Practical review of Kotlin Contracts - a feature we often use, without knowing about it.

The beauty of Kotlin type system

How type system makes Kotlin so flexible, safe, and intuitive.

Map as a property delegate

How do we use Map as a property delegate, and why the result of a famous puzzler should not be surprising.

Observable and Vetoable delegates

What are observable and vetoable delegates, and what are their real-life use cases.

Lazy property delegate

What is lazy delegate, and what are its real-life use cases.

Property delegation

What is property delegation, how does it work, and how can we implement our custom property delegate.

Nullability in Kotlin

How Kotlin null-safety works, and how can we deal with nullable values.

Interface Delegation

One of the least known Kotlin features, that can be sometimes found really useful.

Basic values in Kotlin

Learn about the basic Kotlin values, types and operations.

Variance modifiers limitations

What limitations generic variance modifiers introduce, and how can we ignore them.

Covariant Nothing Object

The pattern we are all using, but no-one talks about it.

Kotlin Generic Variance Modifiers

What are out and in, and how do we use them without even knowing.

Enum classes in Kotlin

What are enum classes in Kotlin and how do we use them.

Operator overloading in Kotlin

How are operators defined for types in Kotlin, and how can we define our own operators.

The power of Kotlin for-loop

Learn about the amazing capabilities of Kotlin for-loop.

Your first program in Kotlin

How to write your first program, how can we use it in real-life projects, and how to explore what Kotlin is compiled to.

Functions in Kotlin

Learn about what functions can offer us in Kotlin.

Marcin Moskała
Marcin Moskała

Context receivers

All you need to know about the new and powerful Kotlin feature: context receivers.

Scope functions

What is let, also, apply and with, and how to use them in our applications.

DSL type-safe builders

How to define type-safe DSL builders in Kotlin.

Lambda expressions

Let's learn how to use lambda expressions, what special support they have, and what traps they generate.

Function references

How do we reference functions in Kotlin, to replace lambda expressions. All functions, including constructors, getters, extensions and more.