5 min read

Kotlin Multiplatform Newsletter #10

We explore the launch of Google Summer of Code 2026 for Kotlin and dive into a technical debate on why you shouldn't start coroutine testing with Turbine. We also cover bridging StateFlow and SharedFlow for shared ViewModels, using AI to audit KMP dependency readiness, and highlight useful CMP libraries like Calf and Compose Cupertino. Plus, a look at Super Mario Bros ported to Kotlin and a Senior KMP role at Fanatics.

The Log

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

⛱️
Google Summer of Code 2026 Is Here: Contribute to Kotlin

The Kotlin Foundation is joining Google Summer of Code (GSoC) 2026! If you are a student or an eligible contributor looking to spend your summer working on a real-world open-source project, this is your chance to make a meaningful impact on the Kotlin ecosystem while also benefiting from the mentorship of experienced engineers.

Expect Actual

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

Don't Learn Coroutine Testing with Turbine

Turbine is a great testing library. It also makes it easy to write over-specified, flaky tests without realising it. Here's why you should learn coroutine testing without it first.
🏁
Crossing the Finish Line: StateFlow & SharedFlow in Kotlin Multiplatform

In this article, we’ll go from a quick recap of StateFlow vs SharedFlow, through the KMP bridge problem, all the way to a working shared ViewModel consumed natively on both Android (Jetpack Compose) and iOS (SwiftUI). We’ll also cover the real gotchas that don’t usually make it into the docs.
🤖
Using AI to Check Your KMP Readiness

Before migrating an Android project to Kotlin Multiplatform, you need to answer one question: are your dependencies ready? Here's how to combine deterministic scripts with AI-powered research to check, without wasting time or money.

The Dependency Graph

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

  • Calf
    Calf is a library that allows you to easily create adaptive UIs and access platform specific APIs with Compose Multiplatform (Adaptive UI, File Picker, WebView, Permissions...).
  • Compose Cupertino
    Compose Cupertino is a Kotlin Multiplatform library for the Compose Multiplatform UI framework. It provides various UI components for making native-looking iOS applications.
  • Kapacity
    Kapacity is a lightweight, zero-allocation Kotlin Multiplatform library for Android and iOS designed to make handling digital data sizes safe, strictly typed, and intuitive.
  • Kotlinx DateTime Fun
    Useful extension functions for kotlinx.datetime library.

Target: Production

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

GitHub - Coding-Meet/DevAnalyzer: DevAnalyzer helps developers analyze, understand, and optimize their entire development setup — from project structure to SDK and IDE storage — all in one unified tool.
DevAnalyzer helps developers analyze, understand, and optimize their entire development setup — from project structure to SDK and IDE storage — all in one unified tool. - Coding-Meet/DevAnalyzer
Should I Go Outside? | Yes, No, or Maybe Weather
Stop checking complicated weather apps. Just the answer you actually need — YES, NO, or MAYBE.
GitHub - UnknownJoe796/super-mario-bros-kotlin: A madman’s attempt to port the original Super Mario Bros disassembly to proper Kotlin.
A madman’s attempt to port the original Super Mario Bros disassembly to proper Kotlin. - UnknownJoe796/super-mario-bros-kotlin

Careers

Kotlin Multiplatform job postings and opportunities.

🏇
Senior Mobile Software Engineer at Fanatics

We embrace principles of data-driven development, operational excellence, and continuous process optimization to deliver a stable, scalable platform. Central to our strategy is Kotlin Multiplatform, which empowers us to deliver high-quality features quickly and consistently across multiple ecosystems. By focusing on object-oriented design, modern coding practices, open-source frameworks, and third-party platform integrations, we continuously innovate and deliver at speed in this exciting and fast-moving market.

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