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 reposted

Making animations in Compose is easy! Let’s overview everything you need to know to make your applications stunning. ☺️🪄


Effective Kotlin reposted

Our very own Marcin Moskala will be speaking at @droidcon London 2025 (linkedin) / @dclnd (X)! 🎤 He’ll be sharing his expertise in two talks: 1️⃣ Structured Concurrency: The paradigm shift that changes modern development 📅 30.10.2025 | ⏰ 10:30 – 11:10 2️⃣ Understanding…

ktdotacademy's tweet image. Our very own Marcin Moskala will be speaking at @droidcon London 2025 (linkedin) / @dclnd (X)! 🎤

He’ll be sharing his expertise in two talks:

1️⃣ Structured Concurrency: The paradigm shift that changes modern development
📅 30.10.2025 | ⏰ 10:30 – 11:10

2️⃣ Understanding…

Effective Kotlin reposted

You’re not alone in your coroutine questions. Being left on your own with confusion means patching problems without ever feeling sure you understand them. In Coroutines Mastery, you don’t just get answers—you learn in a structured way that makes the questions disappear.

marcinmoskala's tweet image. You’re not alone in your coroutine questions.
Being left on your own with confusion means patching problems without ever feeling sure you understand them.
In Coroutines Mastery, you don’t just get answers—you learn in a structured way that makes the questions disappear.

Effective Kotlin reposted

Being a youngster programmer, I was always told that reflection is slow and should be avoided, but I just couldn't observe this slowness in any real measures. That is why I decided to make some benchmarks to see how reflection really performs and write it all down in this…

ktdotacademy's tweet image. Being a youngster programmer, I was always told that reflection is slow and should be avoided, but I just couldn't observe this slowness in any real measures. That is why I decided to make some benchmarks to see how reflection really performs and write it all down in this…

Effective Kotlin reposted

To turn a function into a flow that emits its result, you can just use flow builder with emit. Many projects define a function for that. You can also turn a lambda function using asFlow. If you’d like to go beyond these small tips and really master flows and coroutines, join my…

marcinmoskala's tweet image. To turn a function into a flow that emits its result, you can just use flow builder with emit. Many projects define a function for that. You can also turn a lambda function using asFlow. 

If you’d like to go beyond these small tips and really master flows and coroutines, join my…

Effective Kotlin reposted

Do you have operations in composables that kill your application performance? ☠️ Composable functions can be executed many times, sometimes with every frame. If such composables include any complex calculations, they will be recalculated unnecessarily again and again. The…

ktdotacademy's tweet image. Do you have operations in composables that kill your application performance? ☠️
Composable functions can be executed many times, sometimes with every frame. If such composables include any complex calculations, they will be recalculated unnecessarily again and again. The…

Effective Kotlin reposted

Why is Coroutines Mastery built as a cohort course? Learning from scattered blogs and videos gives you fragments. You solve one issue but don’t understand the principles—and the next time, you’re stuck again. 👉 Secure your seat → shorturl.at/hVaPP That’s why Coroutines…

marcinmoskala's tweet image. Why is Coroutines Mastery built as a cohort course?
Learning from scattered blogs and videos gives you fragments. You solve one issue but don’t understand the principles—and the next time, you’re stuck again.
👉 Secure your seat → shorturl.at/hVaPP

That’s why Coroutines…

Effective Kotlin reposted

People seem surprised that LLMs behave like people. I guess it is because of the misleading term "Artificial intelligence". No one would be surprised if a more appropriate term were used, such as "Pretended human response".


Effective Kotlin reposted

New conference talk recording 🎥 At JavaZone 2025, Marcin Moskala explored one of Kotlin’s trickiest but most powerful features: variance modifiers. We all use them daily (collections, functional types…), but most developers don’t fully realize how much they impact our code.…

ktdotacademy's tweet image. New conference talk recording 🎥

At JavaZone 2025, Marcin Moskala explored one of Kotlin’s trickiest but most powerful features: variance modifiers.

We all use them daily (collections, functional types…), but most developers don’t fully realize how much they impact our code.…

Effective Kotlin reposted

There is amazing interoperability between Kotlin Coroutines and RxJava/Reactor❗

marcinmoskala's tweet image. There is amazing interoperability between Kotlin Coroutines and RxJava/Reactor❗

Effective Kotlin reposted

One of the key concepts of Jetpack Compose is type stability. Stable types allow better recomposition optimisations. That was traditionally very important, but since 2.0.0 a lot has changed. Let me explain 👇

ktdotacademy's tweet image. One of the key concepts of Jetpack Compose is type stability. Stable types allow better recomposition optimisations. That was traditionally very important, but since 2.0.0 a lot has changed. Let me explain 👇

Effective Kotlin reposted

When you start multiple coroutines, you can await them all using joinAll(), but did you know you can also use coroutineScope? It awaits all its children's completion. Did you know that? What pattern do you prefer? We explore patterns like this in depth during my Coroutines…

marcinmoskala's tweet image. When you start multiple coroutines, you can await them all using joinAll(), but did you know you can also use coroutineScope? It awaits all its children's completion. Did you know that? What pattern do you prefer?

We explore patterns like this in depth during my Coroutines…

Effective Kotlin reposted

Coroutines Mastery includes live Q&A with Roman Elizarov & Vsevolod Tolstopyatov (2 sessions each) plus regular sessions with Marcin Moskala. A unique combo of deep insights, practical solutions & expert support. Starts Nov 3. Join now 👉 → shorturl.at/KR5tm

marcinmoskala's tweet image. Coroutines Mastery includes live Q&A with Roman Elizarov & Vsevolod Tolstopyatov (2 sessions each) plus regular sessions with Marcin Moskala. A unique combo of deep insights, practical solutions & expert support. Starts Nov 3. Join now 👉 → shorturl.at/KR5tm

Effective Kotlin reposted

Operators in Kotlin can be used not only with primitives and strings, but also with other classes BigDecimal, collections, date and time, and much more.

ktdotacademy's tweet image. Operators in Kotlin can be used not only with primitives and strings, but also with other classes BigDecimal, collections, date and time, and much more.

Effective Kotlin reposted

Here is my list of the most hated coroutines-related mistakes. Do you have them in your project? If you are interested in exploring coroutines join me for the upcoming Kotlin Mastery course 👇 coroutinesmastery.com/?utm_source=x&…

marcinmoskala's tweet image. Here is my list of the most hated coroutines-related mistakes. Do you have them in your project?

If you are interested in exploring coroutines join me for the upcoming Kotlin Mastery course 👇 
coroutinesmastery.com/?utm_source=x&…

Effective Kotlin reposted

Building AI agents for one platform is tough. But what if you could ship the same agent to JVM, Android, iOS, JS, and even WASM—without rewriting it five times? @Ololoshechkkin new deep dive shows how Koog makes truly multiplatform AI possible (and why it matters). 👉 Read it…

ktdotacademy's tweet image. Building AI agents for one platform is tough. But what if you could ship the same agent to JVM, Android, iOS, JS, and even WASM—without rewriting it five times?

@Ololoshechkkin new deep dive shows how Koog makes truly multiplatform AI possible (and why it matters).

👉 Read it…

Effective Kotlin reposted

What often looks like “power” ends up as boilerplate and complexity. In this article, Marcin Moskala breaks down real-world code samples to show why #Kotlin #Coroutines and Flow give you cleaner, more intuitive solutions. 👇 kt.academy/article/corout…

ktdotacademy's tweet image. What often looks like “power” ends up as boilerplate and complexity.

In this article, Marcin Moskala breaks down real-world code samples to show why #Kotlin #Coroutines and Flow give you cleaner, more intuitive solutions. 👇

kt.academy/article/corout…

Effective Kotlin reposted

Kotlin Coroutines offer first-class support for structured concurrency. This is way beyond explicit structured concurrency in Java, and way easier than Reactor, which requires a good understanding of so many functions to make even simple things.  Dive deeper into coroutines with…

marcinmoskala's tweet image. Kotlin Coroutines offer first-class support for structured concurrency. This is way beyond explicit structured concurrency in Java, and way easier than Reactor, which requires a good understanding of so many functions to make even simple things. 

Dive deeper into coroutines with…

Effective Kotlin reposted

The simplest way to display Android fragment in Compose is using AndroidFragment, which looks amazing, but has two dirty secrets you must know before using it. 🤫

ktdotacademy's tweet image. The simplest way to display Android fragment in Compose is using AndroidFragment, which looks amazing, but has two dirty secrets you must know before using it. 🤫

Effective Kotlin reposted

derivedStateOf body can only observe state, it cannot observe other values! If you use any value that is not a state, and that might change, you must include it as remember key to create new derived state when it changes!

marcinmoskala's tweet image. derivedStateOf body can only observe state, it cannot observe other values! If you use any value that is not a state, and that might change, you must include it as remember key to create new derived state when it changes!

Loading...

Something went wrong.


Something went wrong.