EffectiveKotlin's profile picture. Profile of the Effective Kotlin book by @marcinmoskala

Effective Kotlin

@EffectiveKotlin

Profile of the Effective Kotlin book by @marcinmoskala

Effective Kotlin รีโพสต์แล้ว

If you are not sure about stability of your classes and parameters, you can use Compose compiler report 📈 It generates a report showing how each class and parameter is treated, and essential statistics related to stability 🔍

marcinmoskala's tweet image. If you are not sure about stability of your classes and parameters, you can use Compose compiler report 📈 It generates a report showing how each class and parameter is treated, and essential statistics related to stability 🔍

Effective Kotlin รีโพสต์แล้ว

Years of using Kotlin taught me, that understanding how things work is the greatest asset for a developer. Such a knowledge gives you solid understanding, opens another level of working with technologies, and opens horizons for making own tools. This is why I created Kotlin…

marcinmoskala's tweet image. Years of using Kotlin taught me, that understanding how things work is the greatest asset for a developer. Such a knowledge gives you solid understanding, opens another level of working with technologies, and opens horizons for making own tools. This is why I created Kotlin…

Effective Kotlin รีโพสต์แล้ว

Here is an overview of different column arrangement options in Jetpack Compose.


Effective Kotlin รีโพสต์แล้ว

One of the most important decisions you need to make when defining custom composables is wrather you want to store mutable state locally or hoist it. When state is local: 👉 Logic can be reused. 👉 Component has simpler API. When we hoist it: 😨 There are more (or more…

marcinmoskala's tweet image. One of the most important decisions you need to make when defining custom composables is wrather you want to store mutable state locally or hoist it. 

When state is local:
👉 Logic can be reused.
👉 Component has simpler API.

When we hoist it:
😨 There are more (or more…

Effective Kotlin รีโพสต์แล้ว

Most developers use Kotlin. Few understand what makes it truly powerful. At #Kotlin Expert, we’ll explore how Kotlin’s type system, delegation, and #KSP work under the hood — and how to use that knowledge to write cleaner, more scalable code. 📆 Open workshop, Dec 18–19. Led…

ktdotacademy's tweet image. Most developers use Kotlin. Few understand what makes it truly powerful.
At #Kotlin Expert, we’ll explore how Kotlin’s type system, delegation, and #KSP work under the hood — and how to use that knowledge to write cleaner, more scalable code.
📆 Open workshop, Dec 18–19. Led…

Effective Kotlin รีโพสต์แล้ว

I’m opening registration for the next Kotlin Expert open workshop — two days focused entirely on advanced Kotlin. 👉 kt.academy/workshop/expert We’ll go deep into generics, reflection, KSP, and compiler plugins, while building real tools like a mocking library or serializer. This…

marcinmoskala's tweet image. I’m opening registration for the next Kotlin Expert open workshop — two days focused entirely on advanced Kotlin.
👉 kt.academy/workshop/expert
We’ll go deep into generics, reflection, KSP, and compiler plugins, while building real tools like a mocking library or serializer.
This…

Effective Kotlin รีโพสต์แล้ว

Tired of JavaScript fatigue? Frederik Pietzko shows a pragmatic path to ship form- and table-heavy apps without a SPA: Kotlin + Spring Boot + HTMX + kotlinx.html. Why read: - Trim stack bloat: SSR + HTMX cover interactivity without React-scale overhead. - One source of truth:…

ktdotacademy's tweet image. Tired of JavaScript fatigue? Frederik Pietzko shows a pragmatic path to ship form- and table-heavy apps without a SPA: Kotlin + Spring Boot + HTMX + kotlinx.html.

Why read:

- Trim stack bloat: SSR + HTMX cover interactivity without React-scale overhead.
- One source of truth:…

Effective Kotlin รีโพสต์แล้ว

Do you know how serialization libraries, like Gson or Jackson, work? They are both based on reflection, which is used to analyze classes. Let me show you.

marcinmoskala's tweet image. Do you know how serialization libraries, like Gson or Jackson, work? They are both based on reflection, which is used to analyze classes. Let me show you.

Effective Kotlin รีโพสต์แล้ว

In Kotlin you can use require and check to enforce preconditions in your code. require throws IllegalArgumentException, so it is used to check arguments, and check throws IllegalStateException, so it is used to check state.

marcinmoskala's tweet image. In Kotlin you can use require and check to enforce preconditions in your code. require throws IllegalArgumentException, so it is used to check arguments, and check throws IllegalStateException, so it is used to check state.

Effective Kotlin รีโพสต์แล้ว

Most developers know they can limit collection mutability using read-only type, but did you know you can also specify a type particularly for adding a specific type to a collection? 🤔

marcinmoskala's tweet image. Most developers know they can limit collection mutability using read-only type, but did you know you can also specify a type particularly for adding a specific type to a collection? 🤔

Effective Kotlin รีโพสต์แล้ว

String skipping mode is enabled by default since Kotlin 2.0.20❗Its two biggest changes are that 1. composables with unstable parameters are skippable, they are skipped if equal arguments are used (compared with === for unstable types, and with == for stable), 2. all lambdas in…

ktdotacademy's tweet image. String skipping mode is enabled by default since Kotlin 2.0.20❗Its two biggest changes are that 1. composables with unstable parameters are skippable, they are skipped if equal arguments are used (compared with === for unstable types, and with == for stable), 2. all lambdas in…

Effective Kotlin รีโพสต์แล้ว

I just hate when people do async {}.await(). This makes no sense whatsoever. Why start something asynchronously if you await it immediately? You should separate asyncs from await.

marcinmoskala's tweet image. I just hate when people do async {}.await(). This makes no sense whatsoever. Why start something asynchronously if you await it immediately? You should separate asyncs from await.

Effective Kotlin รีโพสต์แล้ว

In Kotlin we implement interface intersection types using interface delegation. This way we can simply aggregate functionalities of two interfaces into one class. This ScopedRise comes from Arrow library. Learn more at the Kotlin Expert workshop → kt.academy/workshop/expert

ktdotacademy's tweet image. In Kotlin we implement interface intersection types using interface delegation. This way we can simply aggregate functionalities of two interfaces into one class. This ScopedRise comes from Arrow library. 

Learn more at the Kotlin Expert workshop → kt.academy/workshop/expert

Effective Kotlin รีโพสต์แล้ว

Kotlin Coroutines provide special support to interoperate with Java, Swift and JavaScript. Thanks to that, calling suspending functions is a breeze.

marcinmoskala's tweet image. Kotlin Coroutines provide special support to interoperate with Java, Swift and JavaScript. Thanks to that, calling suspending functions is a breeze.

Effective Kotlin รีโพสต์แล้ว

Projects should credit open source libraries they use, but maintaining their list is a nightmare. This is where AboutLibraries library comes to help. It collects all dependency details including licenses at compile time, and offers simple APIs to visualize these in the app. It is…

marcinmoskala's tweet image. Projects should credit open source libraries they use, but maintaining their list is a nightmare. This is where AboutLibraries library comes to help. It collects all dependency details including licenses at compile time, and offers simple APIs to visualize these in the app. It is…

Effective Kotlin รีโพสต์แล้ว

🚨Last chance to join Coroutines Mastery!!🚨 The course has started but you have the last chance to join. Here are some questions we have received from you: How many hours per week do I need to dedicate to keep up? We are planning about 7 hours of core lessons and exercises…

marcinmoskala's tweet image. 🚨Last chance to join Coroutines Mastery!!🚨

The course has started but you have the last chance to join. Here are some questions we have received from you:

How many hours per week do I need to dedicate to keep up?

We are planning about 7 hours of core lessons and exercises…
marcinmoskala's tweet image. 🚨Last chance to join Coroutines Mastery!!🚨

The course has started but you have the last chance to join. Here are some questions we have received from you:

How many hours per week do I need to dedicate to keep up?

We are planning about 7 hours of core lessons and exercises…
marcinmoskala's tweet image. 🚨Last chance to join Coroutines Mastery!!🚨

The course has started but you have the last chance to join. Here are some questions we have received from you:

How many hours per week do I need to dedicate to keep up?

We are planning about 7 hours of core lessons and exercises…

Effective Kotlin รีโพสต์แล้ว

In the OOP, you're stuck with methods defined by others, but Kotlin allows you to extend classes without altering them. This way, we can define our own vocabulary when dealing with external API.

ktdotacademy's tweet image. In the OOP, you're stuck with methods defined by others, but Kotlin allows you to extend classes without altering them. This way, we can define our own vocabulary when dealing with external API.

Effective Kotlin รีโพสต์แล้ว

When I show my example using async to fetch multiple values, people constantly suggest using awaitAll(). Why? This is nonsense!

marcinmoskala's tweet image. When I show my example using async to fetch multiple values, people constantly suggest using awaitAll(). Why? This is nonsense!

Effective Kotlin รีโพสต์แล้ว

The most common mistake with coroutines is either not using async where it can speed-up execution, or using it in a way that makes no sense. Let me explain.

ktdotacademy's tweet image. The most common mistake with coroutines is either not using async where it can speed-up execution, or using it in a way that makes no sense. Let me explain.

Effective Kotlin รีโพสต์แล้ว

⏳ Waiting for the next cohort? You’ll be waiting a long time. The next edition of Coroutines Mastery starts only in Nov 2026. That means if you don’t join now, your coroutine skills will stay stuck in idle mode for an entire year. This is the last moment to get in: ✅ Live Q&A…

marcinmoskala's tweet image. ⏳ Waiting for the next cohort? You’ll be waiting a long time.

The next edition of Coroutines Mastery starts only in Nov 2026. That means if you don’t join now, your coroutine skills will stay stuck in idle mode for an entire year.

This is the last moment to get in:
✅ Live Q&A…

Loading...

Something went wrong.


Something went wrong.