
Effective Kotlin
@EffectiveKotlin
Profile of the Effective Kotlin book by @marcinmoskala
You might like
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…

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…

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…

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".
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.…

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

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 👇

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…

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

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.

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&…

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…

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…

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…

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. 🤫

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!

Learn where coroutines are heading. Vsevolod Tolstopyatov @qwwdfsad, current Kotlin Team Lead at JetBrains, will host two live Q&A sessions in Coroutines Mastery. He’ll share: Which problems the coroutines team is focusing on How priorities are decided The direction the library…

The way how static dependency injection works is actually very simple, and I can explain it in two minutes! Let me show you 👇🧵

Data classes are not just syntactic sugar; they have completely changed how we treat classes and objects, and by doing so, they have extremely simplified development. Let me explain 🧵

CancellationException is important for cancellation mechanism! As a rule of thumb, we should always rethrow it. Here is what might happen if we don't.
United States Trends
- 1. Gabe Vincent 3,507 posts
- 2. Deport Harry Sisson 7,530 posts
- 3. #Blackhawks 2,083 posts
- 4. Angel Reese 49.6K posts
- 5. DuPont 1,626 posts
- 6. Mavs 5,681 posts
- 7. Blues 21.6K posts
- 8. #PokemonZA 1,416 posts
- 9. Lakers 18.2K posts
- 10. tzuyu 230K posts
- 11. #AEWDynamite 18.3K posts
- 12. Deloitte 5,917 posts
- 13. #PokemonLegendZA 1,207 posts
- 14. #VSFashionShow 558K posts
- 15. Birdman 5,131 posts
- 16. jihyo 182K posts
- 17. Tusky 2,287 posts
- 18. Mad Max 3,393 posts
- 19. Nazar 6,810 posts
- 20. Britney 20.7K posts
You might like
-
Marcin Moskała
@marcinmoskala -
kt.academy
@ktdotacademy -
Kotlin by JetBrains
@kotlin -
KotlinConf
@kotlinconf -
ProAndroidDev
@proandroiddev -
Igor Wojda 🤖
@igorwojda -
Roman Elizarov
@relizarov -
Dave Leeds
@djleeds -
Jose Alcérreca
@ppvi -
InsertKoin.io
@insertkoin_io -
JetBrains Ktor
@JetBrainsKtor -
Jorge Castillo
@JorgeCastilloPr -
Márton Braun
@zsmb13 -
Akshay Chordiya
@Akshay_Chordiya -
Antonio Leiva
@leiva_dev
Something went wrong.
Something went wrong.