4 min read

Kotlin Multiplatform Newsletter #17

We celebrate the winners of the Kotlin Ecosystem Mentorship Program and dive into high-performance patterns for KMP. We explore Metro DI patterns, adaptive layout systems that handle everything from phones to foldables with zero hardcoded pixels, and a guide to handling exceptions in Kotlin Flows. Plus, we look at how to fix production bugs using Claude Code and the Kotzilla MCP Server, and feature new roles at Booz Allen and CoreWillSoft.

The Log

The only Kotlin Multiplatform and Compose Multiplatform news you actually need to know.

🏅
Kotlin Ecosystem Mentorship Program: Results and Winners

In the Kotlin Ecosystem Mentorship Program pilot, mentors and mentees worked together on real Kotlin open-source projects to make their first meaningful community contribution. Four pairs successfully completed the two-month program, and one eligible pair was randomly selected in the prize drawing to receive the grand prize – a trip to KotlinConf 2026 in Munich!

The Main Thread

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

▶️
How to Handle Exceptions in Kotlin Flows

Exceptions can be thrown from within our flows, just like anywhere else in our Kotlin code. In this video, we'll see the right and wrong places to put your try-catch blocks, and how to use the catch operator.

Expect Actual

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

🏎️
Drop the Clutch: Three Metro DI Patterns Every KMP Developer Should Know

I already covered Koin Annotations in a previous article. What follows isn’t a migration guide. It’s a look at three specific patterns that come up in every real KMP project and where Metro’s behaviour changed how I think about dependency injection.
🧰
Fixing production issues in a Kotlin Multiplatform app with Kotzilla MCP Server and Claude Code

In this article, I fixed real production issues on a Kotlin Multiplatform app entirely from inside Claude Code using Kotzilla MCP Server. Two things made that loop work.
🔔
Push Notifications in Mobile Apps Using Kotlin Multiplatform (KMP): A Practical Guide

In this article, we’ll walk through how to implement push notifications in a KMP project, share as much logic as possible, and handle the platform-specific parts cleanly using expect/actual.

LazyColumn

Compose Multiplatform tips, tricks, and code snippets.

🧑‍🎨
Building a Production-Grade Adaptive Layout System in Kotlin Multiplatform — From Phone to Foldable

This article is about building a layout system that is intentionally adaptive. One that knows what device it’s running on, what orientation it’s in, whether a hinge is separating the screen in two, whether the iPad is in Split View, and makes a precise, correct decision every single time — with zero hardcoded pixel values and zero platform-specific layout code in your feature screens.
✍️
Jetpack Compose Animations

A growing catalog of self contained Jetpack Compose animation examples by skydoves. Every entry is a single composable file you can read end to end, with the constants you can tweak and a written walkthrough of how the motion is built.

The Dependency Graph

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

  • Kmp Resources Unfold
    A professional productivity tool designed for Android Studio and IntelliJ IDEA developers. It bridges a major gap in the IDE by providing visual management and robust import capabilities for assets across all your Kotlin Multiplatform (KMP) modules.
  • Gradle Lighthouse
    An enterprise-grade build intelligence plugin for Android and Kotlin Multiplatform. Think of it as "Google Lighthouse" for your module graph.
  • FastCollect
    A library for high-performance primitive collections in the Kotlin ecosystem. As a drop-in replacement for standard Kotlin collections, FastCollect generally reduces memory usage by 4–5× and improves CPU performance by 2-4× (and perhaps >10× on some iteration heavy workloads).
  • native-kt
    Gradle plugin for convenient C/C++ integration into a Kotlin Multiplatform project.  Supports JVM, Android, Native, Wasm and JS targets.

Careers

Kotlin Multiplatform job postings and opportunities.

🤹‍♂️
Multi-Platform Mobile Application Developer at Booz Allen

As a senior Multi-Platform Mobile Application Developer at Booz Allen, you’ll support the development of systems, sites, and tools for our clients. Using the latest tools and technology, you’ll write, test, and edit code in support of the team’s overall results. You’ll expand your skills as you develop and reverse engineer software that supports hardware functionality on a wide range of devices, as well as configure solutions based on the platform being used. You’ll work with other team leaders to troubleshoot and correct operational issues, as well as with cybersecurity specialists to ensure that the software you’re creating is secure.
👨‍💻
FullStack Software Engineer (Kotlin/React) at CoreWillSoft

We are looking for a Full-Stack Software Engineer with strong backend experience in Kotlin/Java and either: solid Frontend (React) expertise, or experience in Kotlin Multiplatform / Android development. Our team operates in a scaled agile approach across Europe with a headquarter in Bonn, Germany. It is responsible for the complete software development lifecycle; including ideation, implementation, and operation of the secure IoT software operating smart buildings and smart homes across the world.

Got something interesting to share with the Kotlin Multiplatform community? 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.

✍ 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