4 min read

Kotlin Multiplatform Newsletter #14

We celebrate the arrival of the Koin Compiler Plugin 1.0.0-RC1, finally unlocking compile-safe dependency injection for Kotlin and KMP. We explore how to convince decision-makers that KMP is a fundamental shift in capital allocation, and dive into technical deep dives on observability with Kotzilla, 3-line ViewModels, and the hard cut-off for AGP 10.0. Plus, we look at UI Testing in Compose Multiplatform 1.11, the Materia 3D Engine, and a featured Senior iOS/KMP role at Jump.

The Log

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

🪙
Koin Compiler Plugin 1.0.0-RC1 — Unlocking Compile-Safe Dependency Injection for Kotlin & KMP

Compile-time safety has been one of the most requested features by the community. For years, verifying your Koin dependency graph required runtime tools with checkModules() and verify() in your test suite. They run after compilation. If something is missing, you find out in test results, not at build time. It’s now time for new generation of tools for Koin.

The Main Thread

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

👉
Helping Decision-Makers Say Yes to Kotlin Multiplatform (KMP)

In the current competitive landscape, the traditional mobile development model characterized by maintaining independent, duplicated codebases for iOS and Android is no longer a sustainable use of capital. This approach systematically introduces feature lag, technical debt, and a fragmented engineering culture that hinders organizational agility. For leadership, adopting Kotlin Multiplatform (KMP) must be viewed as a fundamental shift in capital allocation for mobile engineering.

Expect Actual

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

🦖
Kotlin Multiplatform observability with Kotzilla SDK and the KotlinConf App

With more and more Kotlin Multiplatform apps in production, how do you get one consistent view of crashes and app vitals across all targets? how do you find the actual root cause of app issues when your code is shared Kotlin code running on Android, iOS, JVM and Web?
🤏
Your ViewModel Should Be 3 Lines Long

A pure-Kotlin UIModel pattern for KMP — same class on SwiftUI, Kobweb, and Compose. No AndroidX required.
⚠️
Evolution of Kotlin Multiplatform: Migration to AGP 10

The Hard Cut-off is coming. Don’t let AGP 10.0 turn your deprecation warnings into build failures.
📝
Dokka V2 for KMP Libraries

Dokka is an API documentation engine for Kotlin that supports mixed-language projects. This means that you can have KDocs or JavaDocs in your project, and Dokka will generate good-looking and unified docs for you.

LazyColumn

Compose Multiplatform tips, tricks, and code snippets.

🔪
Slot pattern, the slicing compose UI

Let’s talk about how transitioning to the Slot Pattern can save your sanity, clean up your codebase, and actually improve your app’s rendering performance.
🏁
Clean Lap: UI Testing in Compose Multiplatform

Compose Multiplatform 1.11 (currently in beta) brings runComposeUiTest v2 support for non-Android targets. Writing a test in commonTest and running it on Android, desktop, and iOS is no longer an experimental workaround. This article walks through the setup, the API, and the one coroutine change in 1.11 that will break your existing tests if you upgrade without knowing about it.
🗒️
Table KMP

TableKMP is a highly customizable, deeply interactive, and buttery-smooth data grid / table library built natively for Compose Multiplatform. Whether you need a simple list, a dense enterprise financial grid, or a fully interactive Kanban-style task board with drag-and-drop, TableKMP adapts perfectly across Desktop, Web, iOS, and Android.

The Dependency Graph

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

  • kmp-app-version
    A Gradle plugin that keeps your Android and iOS app versions in sync from a single source of truth: the Gradle version catalog (libs.versions.toml).
  • Materia - Kotlin Multiplatform 3D Engine
    Kotlin Multiplatform 3D graphics library providing Three.js-equivalent capabilities with WebGPU/Vulkan backends. Write 3D apps once, deploy on JVM, Web, Android, iOS & Native. 60 FPS target, <5MB size, type-safe math, scene graph, materials & more.
  • Dokka
    Dokka is an API documentation engine for Kotlin. Just like Kotlin itself, Dokka supports mixed-language projects. It understands Kotlin's KDoc comments and Java's Javadoc comments.
  • Sysnotify
    Cross-platform system notifications for Kotlin Multiplatform.

Careers

Kotlin Multiplatform job postings and opportunities.

🏀
Senior iOS/KMP Engineer at Jump

We’re looking for a Senior iOS Engineer to help build and evolve Jump’s mobile apps. You’ll be an early member of our mobile team, contributing hands-on to core features, architecture, and technical direction as our app and platform scale.

Our mobile stack uses Kotlin Multiplatform (KMP) for shared data and domain layers, with a native SwiftUI layer on iOS. In this role, you’ll write production Kotlin Multiplatform code and own the iOS user experience working across the full mobile stack to deliver high-quality, fan-facing features. You’ll collaborate closely with other mobile engineers, product managers, and designers to ship thoughtful experiences to a passionate and growing sports audience.

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