Workshops
Courses
Books
Articles
Matthias Schenk
Reviewed articles
Generics in Kotlin
The essence of how generics work in Kotlin.
Marcin Moskała
3/18/2024
Static Code Analysers
All you need to know about Static Code Analysers and Detekt.
Nicola Corti
1/22/2024
Annotation Processing
Implement your first annotation processor in Kotlin.
Marcin Moskała
12/11/2023
Effective Kotlin Item 60: Use appropriate collection types
Using non-standard collection types to improve performance in Kotlin.
Marcin Moskała
12/4/2023
Kotlin Symbol Processing
All the essential aspects of KSP in practice.
Marcin Moskała
11/27/2023
Effective Kotlin Item 49: Use caching when possible
Why we should use caching and how to do it.
Marcin Moskała
11/20/2023
Data classes in Kotlin
What are data classes in Kotlin and how do we use them.
Marcin Moskała
11/13/2023
Effective Kotlin Item 48: Consider using object declarations
Why we should use object declarations instead of regular classes.
Marcin Moskała
11/6/2023
Kotlin Reflection: Type references
Using type references, with practical example of random value generator.
Marcin Moskała
10/30/2023
Kotlin Reflection: Class references
All the essential aspects of class references, and a practical object serialization example.
Marcin Moskała
10/23/2023
Kotlin Reflection: Method and property references
The general hierarchy of Kotlin reference classes, and details about method and property references.
Marcin Moskała
10/16/2023
Extensions in Kotlin
What are extensions in Kotlin and how do we use them.
Marcin Moskała
10/9/2023
Effective Kotlin Item 35: Consider using dependency injection
What is dependency injection, why it is so important, and how to use it in Kotlin.
Marcin Moskała
10/2/2023
Implementing Multiplatform Kotlin Mobile
How in Kotlin we can implement Android and iOS projects with shared logic.
Marcin Moskała
9/25/2023
Implementing Multiplatform Kotlin library
How in Kotlin we can use multiplatform capabilities to distribute the same code to multiple platforms.
Marcin Moskała
9/18/2023
Using Multiplatform Kotlin
The essence of using multiplatform Kotlin capabilities and definition common elements.
Marcin Moskała
9/11/2023
Sealed classes and interfaces in Kotlin
What are sealed classes and interfaces in Kotlin and how do we use them.
Marcin Moskała
9/4/2023
Effective Kotlin Item 2: Eliminate critical sections
Learn why do we need to synchronize access to mutable state, and how to secure it.
Marcin Moskała
8/28/2023
Kotlin and Java interoperability: Traps and gotchas
The parts of Kotlin and Java interoperability that might be surprising or counterintuitive.
Marcin Moskała
8/21/2023
Kotlin and Java interoperability: Useful annotations
Learn about useful Kotlin annotations, that decide that it is compiled to on JVM.
Marcin Moskała
8/14/2023
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?
Marcin Moskała
8/7/2023
Kotlin and Java interoperability: Types
See surprising transitions that happens on types when you interoperate between Kotlin and Java.
Marcin Moskała
7/31/2023
Objects in Kotlin
What is object expression, object declaration and companion objects, and how we use them.
Marcin Moskała
7/17/2023
Kotlin Contracts
Practical review of Kotlin Contracts - a feature we often use, without knowing about it.
Marcin Moskała
7/3/2023
The beauty of Kotlin type system
How type system makes Kotlin so flexible, safe, and intuitive.
Marcin Moskała
6/12/2023
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.
Marcin Moskała
5/8/2023
Observable and Vetoable delegates
What are observable and vetoable delegates, and what are their real-life use cases.
Marcin Moskała
5/2/2023
Lazy property delegate
What is lazy delegate, and what are its real-life use cases.
Marcin Moskała
3/27/2023
Property delegation
What is property delegation, how does it work, and how can we implement our custom property delegate.
Marcin Moskała
3/20/2023
Nullability in Kotlin
How Kotlin null-safety works, and how can we deal with nullable values.
Marcin Moskała
3/13/2023
Interface Delegation
One of the least known Kotlin features, that can be sometimes found really useful.
Marcin Moskała
3/6/2023
Basic values in Kotlin
Learn about the basic Kotlin values, types and operations.
Marcin Moskała
2/27/2023
Variance modifiers limitations
What limitations generic variance modifiers introduce, and how can we ignore them.
Marcin Moskała
2/20/2023
Covariant Nothing Object
The pattern we are all using, but no-one talks about it.
Marcin Moskała
2/13/2023
Kotlin Generic Variance Modifiers
What are out and in, and how do we use them without even knowing.
Marcin Moskała
2/8/2023
Enum classes in Kotlin
What are enum classes in Kotlin and how do we use them.
Marcin Moskała
2/1/2023
Operator overloading in Kotlin
How are operators defined for types in Kotlin, and how can we define our own operators.
Marcin Moskała
1/23/2023
The power of Kotlin for-loop
Learn about the amazing capabilities of Kotlin for-loop.
Marcin Moskała
1/18/2023
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.
Marcin Moskała
1/10/2023
Functions in Kotlin
Learn about what functions can offer us in Kotlin.
Marcin Moskała
12/12/2022