Will no-code solutions ever replace programming? As developers, we’ve seen trends come and go, from HTML to React/Vue, from XMLs to Jetpack Compose and SwiftUI, from Maven to Gradle, and much more. This article explores some important trends and what they tell us about no-code and code-based solutions👇
https://t.co/dBxshzwmSA
This is probably the hardest game I made.
The task sounds simple:
read coroutine code and predict the result.
In practice, you need to be precise about timing, ordering, cancellation, and exceptions.
Which is exactly why it is such good practice.
Play here: https://t.co/pc76R2Ws5F
When working with coroutines, a lot of mistakes come from mixing up the basics: when to use launch vs async, what coroutineScope really guarantees, what happens when a parent is cancelled, or which dispatcher should be used for a given kind of work.
I put the most important elements in one Kotlin Coroutines Cheat Sheet: starters, coroutine control, structured concurrency rules, Job states, scopes, dispatchers, and common use cases. Leave your email on the page and download it.
Kotlin Coroutines are much more than just lightweight threads. Here, I present the key advantages that nearly no one talks about and only experienced developers realize.
https://t.co/Zj5EBYx6Va
If you’re planning a broader Kotlin upskilling initiative, a complete path is Kotlin Mastery for hands-on practice, supported by Kotlin Coroutines: Deep Dive and Effective Kotlin as structured references.
runBlocking starts a coroutine, but it also blocks the current thread until this coroutine is completed, so it should be used when we need to use a coroutine from a thread we can block 𝐚𝐧𝐝 we need to await completion of this coroutine or get its result.
I am proud to share with you one of the most ambitious project on Coroutines Mastery 2025. Shamil Giylmetov made a complete Gemini client. Application works well and code is clean and readable, I am happy this project is now enriching our community.
👉 https://t.co/7ym32WhPZZ
#coroutinesmasteryproject
Flow is often used correctly by habit, but misunderstood in principle.
That usually works — until a pipeline behaves differently than expected.
This game is a small exercise in precision:
read the Flow code, predict the behavior, and verify whether your understanding holds.
Play here: https://t.co/Wh0F0MuerJ
What to do when you need to use callback API from Kotlin Coroutines? Learn how to turn callback functions into suspending functions or flow with new article by Marcin Moskała!
https://t.co/Kf5DW3vQg6
If this kind of deep dive helps, we cover it end-to-end in Coroutines Mastery. https://t.co/RDEdMUCwNF
This is an everyday companion that helps with Compose development:
Compose Advanced Cheat Sheet (10 pages) — modifiers, theming (MaterialTheme + CompositionLocals), stability rules, and recomposition-safe patterns.
Free upon registration: https://t.co/YFMEWblB5a
Compose becomes much less mysterious once you have a few rules you trust. This sheet keeps those rules close.
Why is Kotlin hesitating to introduce union types? They are not that good, even though they can help us model some types better, they introduce many surprising problems.
In this article, you will discover that:
💡 It is no coincidence that languages like Swift or Scala, with type inference and union types, have such a slow compilation and suggestions.
💡 Why their subtyping must be undecidable,
💡 What unpleasant surprises union-type has for developers.
https://t.co/A4pEk21wFK
You cannot start new coroutines on a cancelled scope. Such coroutines never start, without any exception or even an exception raport in logs. That is why a cancelled scope is a dangerous thing, and I prefer cancelling only its children.
Conventions are not optimal in every case, but they are optimal for a project or a community when we all follow the same conventions. Compose provides a set of strict conventions that specify how to correctly define components, how to name them, and how to organize their parameters.
You can find all those conventions in the Compose Advanced Cheat Sheet.
👉 Free upon registration: https://t.co/EqUC1Uy8yj
If your goal is “less magic, more mechanics” in Compose, this is the kind of reference you’ll actually use.
When a coroutine is cancelled, it cannot start children or make suspending calls. That means suspending cleanup functions need some special attention. Let me explain.
🚨 Mutable state in Kotlin: Should you use var or mutable val? 🤔 Each has its perks! One boosts the efficiency of adding elements; the other simplifies observability. Beware of pitfalls like defensive copying and thread safety! 🛠️ Master the trade-offs to avoid common mistakes with this article 👇https://t.co/EvKbNvinMd
For teams that already use Kotlin in production, we recommend pairing the Kotlin Mastery workshop with Effective Kotlin, so developers get both hands-on practice and a structured reference to best practices.
One of the most important Compose skills is not “knowing the API”.
It is being able to look at a modifier chain and say, with confidence, what the UI will actually look like.
That sounds simple, but in practice it is where many developers struggle. Modifier order affects layout, drawing, clipping, interaction, and positioning in ways that are easy to underestimate. A chain that looks obvious at first glance can produce a result very different from what you expected.
That is why I created this Modifier Guesser Game.
The idea is straightforward: read the modifier chain, inspect the component, and choose the correct visual outcome. With higher levels, the challenge becomes less about remembering examples and more about building a reliable mental model of how Compose behaves.
If Compose ever surprised you, this game is a good way to train the part that matters most: prediction.
Play here: https://t.co/xqPgx1c3LY
CancellationException is part of coroutines cancellation mechanics, and stopping it is a mistake. People most often do that accidentally, when they catch all exceptions. That is not acceptable❗Let me explain why, and what to do instead.
You can finally see a warning when you use suspendCoroutine. This is good, because the right way to suspend a coroutine is to use suspendCancellableCoroutine. suspendCoroutine should be forgotten, as it does not support cancellation. suspendCancellableCoroutine is a low-level API rarely used in application code, but often used by libraries that support suspending calls.
These “recipes” are a taste of what we do in Coroutines Mastery. https://t.co/lMy0ysrNj5
The synchronized block is popular for synchronizing non-suspending functions, but it can also be tricky. Without proper understanding, developers make mistakes, which leads to mistakes that are hard to find.
🚨 Is Your Network Client Sabotaging Performance? 🚨
Coroutines promise fewer threads and better efficiency—but are your libraries secretly blocking threads? 🤔 Discover how popular Kotlin network clients like Retrofit, Ktor, and Fuel really manage threads. Your app’s performance might depend on it! 💥https://t.co/8CY5DQkMYq
If this kind of deep dive helps, we cover it end-to-end in Coroutines Mastery. https://t.co/RDEdMUCwNF