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.
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.
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!
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.
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 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.
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?
A pure-Kotlin UIModel pattern for KMP — same class on SwiftUI, Kobweb, and Compose. No AndroidX required.
The Hard Cut-off is coming. Don’t let AGP 10.0 turn your deprecation warnings into build failures.
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.
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.
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.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.
wellfound • Where startups and job seekers connect.
🤝 Connect directly with founders at top startups - no third party recruiters allowed.
💸 Everything you need to know, all upfront. View salary, stock options, and more before applying.
✌️ Say goodbye to cover letters - your profile is all you need. One click to apply and you're done.
✨ Unique jobs at startups and tech companies you can’t find anywhere else.
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.
🚀 Get Featured!
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