> ## Content Index
> Fetch the complete content index at: https://commonmain.dev/llms.txt
> Use this file to discover other available public pages before exploring further.

# Kotlin Multiplatform Newsletter #26
- URL: https://commonmain.dev/kotlin-multiplatform-newsletter-26/
- Published: 2026-07-14T13:00:58.000Z
- Updated: 2026-07-14T13:00:59.000Z
- Author: Bogdan Codes
- Tags: Issues

We explore how Kraken Technologies slashed their average Gradle build times by 70% using the Dependency Analysis Gradle Plugin, and dive into the undocumented compiler rules of advanced `expect`/`actual` declarations. We also break down the performance tax of `BoxWithConstraints` by digging into Compose's `SubcomposeLayout` API, outline migrating multimodule projects to Koin Annotations, and highlight a Senior Mobile KMP position at Accesa.

### **The Main Thread**

Community's most insightful threads, curated from social media platforms and websites.

[The History of Kodee, Kotlin's Mascot](https://blog.jetbrains.com/research/2026/07/the-history-of-kodee/?ref=commonmain.dev)  
  
Bringing Kodee to life wasn’t just a design challenge; it was a deeply collaborative effort by the Kotlin Marketing team, together with the Design and Strategic Research teams at JetBrains. The project’s goal was to create a mascot that truly resonated with the developer community.

[Is Kotlin becoming too bloated? Why I am sticking to a "Minimalist" subset of the language](https://www.reddit.com/r/Kotlin/s/dZ3eQUSEiE?ref=commonmain.dev)  
  
I really think a language should be simple and powerful, not bloated with endless concepts. Anyone else intentionally keep their Kotlin simple just to stay sane? Or am I missing something?

### Expect Actual

Technical deep dives, or solving the "how-the-hell-do-I-test-this" problems.

affiliate link — supports the newsletter at no extra cost to you 

****Stop treating Kotlin like a black box! 🧠**  
  
To build truly performant multiplatform apps, writing code that just "works" isn't enough. We need to understand what the compiler is actually doing under the hood.

That’s why I highly recommend [****Practical Kotlin Deep Dive**](https://skydoves.gumroad.com/l/kotlin-deep-dive?a=705284499&ref=commonmain.dev) by skydoves. This isn't a basic syntax guide, it breaks down Kotlin internals, bytecode, and coroutines. It’s been a total game-changer for me when writing and optimizing shared code.  
  
If you want to level up your Kotlin and KMP skills to a senior standard, you need this on your desk.

[Get the Book ](https://skydoves.gumroad.com/l/kotlin-deep-dive?a=705284499&ref=commonmain.dev) 

[The Same System: Advanced expect/actual in KMP](https://www.kmpbits.com/posts/expect-actual-advanced-kmp?ref=commonmain.dev)  
  
That is `expect`/`actual`, and it is the closest thing KMP has to a signature move. You declare the position once in `commonMain`. Each platform fields its own player. The trivial version, an `expect fun` with a one-line `actual` on each side, gets shown in every intro tutorial and it is genuinely easy. This article is about what happens after that, when you start declaring classes, constructors, and typealiases, and the compiler starts enforcing rules that the tutorials never mention.

[Kotlin DSL Deep Dive: From Gradle Scripts to Building Your Own](https://proandroiddev.com/kotlin-dsl-deep-dive-from-gradle-scripts-to-building-your-own-8e08a1471467?ref=commonmain.dev)  
  
What `.kts` files actually are, why Gradle’s `dependencies { }` is just a function call, and how to build a working HTML DSL from scratch

[How to use Koin Compiler in a Multimodule Project?](https://blog.insert-koin.io/how-to-use-koin-compiler-in-a-multimodule-project-6bd8e57d5e4b?ref=commonmain.dev)  
  
Today we’re diving into how to use the Koin Compiler in a Compose Multiplatform multi-module project. In the previous article, we explored how to migrate a multimodule setup to Koin Annotations, using a convention Gradle plugin to move forward in small, safe steps. We’ll follow that same approach diving deep into a project called MovieDB-App.

[Cut build time by 70% in your KMP projects with the Dependency Analysis Gradle Plugin](https://autonomousapps.com/blog/announcing-dagp-kmp/post/?ref=commonmain.dev)  
  
Kraken Technologies, which maintains a Kotlin Multiplatform (KMP) project of roughly 600 modules, was recently able to cut its average build time from about 6 minutes to about 1 minute and 50 seconds, or \~70%. They also report that sync times improved from roughly 5 minutes to roughly 45 seconds, or \~85%.

### LazyColumn

Compose Multiplatform tips, tricks, and code snippets.

[Another Way to KMP: Shared Renderers](https://proandroiddev.com/another-way-to-kmp-shared-renderers-0d1b66a733d7?ref=commonmain.dev)  
  
In the first two articles I built 3D chess twice — once with a Compose Multiplatform shell, once with React Native. In both cases, the game logic was in shared Kotlin, and platform-specific 3D renderers displayed the state. This article is about a project that inverts that architecture — and about why the inversion is correct.

[Mirage: Cloudy Grows from a Blur Library into a Graphics Effect Library](https://medium.com/proandroiddev/mirage-cloudy-grows-from-a-blur-library-into-a-graphics-effect-library-3b8eaf9cc7ca?ref=commonmain.dev)  
  
Blur is a single effect with a single knob, a radius, and for a long time that was the whole library. Mirage is where that changes. It is the first step in Cloudy growing past “the blur library” into a general graphics effect toolkit — a way to run authored GPU shader effects, not just a fixed blur, over the content and backdrops in your Compose UI.

[Inside SubcomposeLayout: Jetpack Compose’s Most Misunderstood API](https://blog.shreyaspatil.dev/inside-subcomposelayout-jetpack-composes-most-misunderstood-api/?ref=commonmain.dev)  
  
Hey Composers 👋, if you’ve built a complex UI in Jetpack Compose, you’ve probably reached for `BoxWithConstraints`. And by doing so, you’ve probably paid a performance tax you didn’t fully understand.

### The Dependency Graph

Curated libraries, tools and plugins that won't break your Gradle build.

- [**Cloudy**](https://github.com/skydoves/Cloudy?ref=commonmain.dev)  
Kotlin Multiplatform blur and liquid glass effect library for Compose, with GPU-accelerated rendering and CPU fallback for older devices.
- [**kUML**](https://github.com/kuml-dev/kUML?ref=commonmain.dev)  
Architecture that compiles. Kotlin DSL for UML 2.x, SysML 2 and C4 diagrams-as-code — CLI, Compose Desktop, IntelliJ & Obsidian plugins, Asciidoctor extension on Maven Central, ELK layout, reverse engineering (Java/Kotlin), XMI import/export, plugin SPI. Apache-2.0.
- [**KMP Biometric Auth**](https://github.com/Froyder/kmp-biometric-auth?ref=commonmain.dev)  
KMP biometric authentication library with hardware-backed crypto. Keystore-bound AES/GCM on Android, Keychain with biometryCurrentSet on iOS.
- [**Compose Multiplatform Preferences**](https://github.com/kvarun701/compose-multiplatform-preferences?ref=commonmain.dev)  
A lightweight, developer-friendly Key-Value Storage library for Kotlin Multiplatform (KMP) and Compose Multiplatform (CMP) projects.
- [**Documents**](https://github.com/nomemmurrakh/documents?ref=commonmain.dev)  
Typed, reactive documents on top of MMKV — a Kotlin Multiplatform storage library for Android & iOS.
- [**Compose Media Player**](https://github.com/kdroidFilter/ComposeMediaPlayer?ref=commonmain.dev)  
Compose Media Player is a video player library designed for Compose Multiplatform, supporting multiple platforms including Android, macOS, Windows, Linux, iOS and Compose Web.

### Target: Production

Showcase of real-world apps proving KMP is ready for prime time.

affiliate link — supports the newsletter at no extra cost to you 

****Carrd** • ****Simple, free, fully responsive one-page sites for pretty much anything.**  
  
Whether it's a personal profile, a landing page for your KMP project, or something a bit more elaborate, Carrd has you covered. Simple, responsive, and yup — totally free!

[Get Started ](https://try.carrd.co/commonmain?ref=commonmain.dev) 

[Unbeatable Football | Historic Football Draft GameDraft players across 11 rounds, build a balanced lineup, clear daily challenges, and protect your streak.![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/icon/favicon-32x32-96c0ddc2-3fd2-4a27-813e-b8b243749780.png)Unbeatable FootballUnbeatable Football![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/thumbnail/og-image-44aba6b8-0afc-4cdf-8cc0-012310f572f3.png)](https://unbeatablefootball.com/?ref=commonmain.dev)

[GitHub - wingedsheep/argentum-engine: Magic: The Gathering rules engine + online play platform, in KotlinMagic: The Gathering rules engine + online play platform, in Kotlin - wingedsheep/argentum-engine![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/icon/favicon-fa1540dd-0c7e-4874-8569-d803c7992b0a.svg)GitHubwingedsheep![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/thumbnail/argentum-engine-df483f87-ae18-4492-9d39-9cae6a6a0e39)](https://github.com/wingedsheep/argentum-engine?ref=commonmain.dev)

### Careers

Kotlin Multiplatform job postings and opportunities.

affiliate link — supports the newsletter at no extra cost to you 

****hackajob** • **Meet Archer, your AI job matching agent**  
  
5x more interviews. Zero guesswork. Archer works 24/7 to match you with roles that fit your stack and seniority. You review the matches, not the job boards.

[Create your free profile ](https://hackajob.com/talent/invite?referral%5Fid=ce111234ec9b294c075f&ref=commonmain.dev) 

[Senior Mobile Software Engineer with Kotlin](https://jobs.smartrecruiters.com/ACCESA/744000136778369-senior-mobile-software-engineer-with-kotlin?ref=commonmain.dev) at [Accesa](https://accesa.eu/?ref=commonmain.dev)  
  
We are looking for a Senior Kotlin Developer who is experienced in Kotlin Multiplatform delivery, comfortable owning complex shared modules in a layered architecture, and motivated by the challenge of building the reliable, platform-agnostic foundation that modern retail operations depend on.

---

#### 🚀 Get Featured!

Got something interesting to share with the Kotlin Multiplatform community? [Submit your link](https://commonmain.dev/submit-your-link/) for a chance to get featured in the next issue of **commonMain.dev**.

#### 🤝 Support the Build

**commonMain.dev** is made possible by our partners. If you have a tool or service that helps KMP developers ship to production faster, we’d love to help you reach our community. [Collaborate with us](https://commonmain.dev/sponsor/).

#### ✍ Code Review

This newsletter is curated and written by a real human being. I’m always looking for ways to optimize the build. Was there something you liked or disliked in particular? Or did you find a bug in this issue? Simply **reply to this email** \- I read every comment from the community and take your feedback into account for the next release.

Until next time,   
**Stay platform-independent!**  
Bogdan • Founder of commonMain.dev

![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/2026/06/kodee-mail-v1-upscaled-2-1-1.png) 

## Sign up for commonMain.dev

Every Tuesday, the few KMP links actually worth your time.  
Hand-picked, no AI filler.

Join free 

Email sent! Check your inbox to complete your signup. 

Free forever · One email every Tuesday · No spam, unsubscribe anytime.  
Hand-picked by a senior engineer (8+ yrs) · Read by KMP engineers & tech leads.