Kotlin Multiplatform Newsletter #23
We celebrate Kotlin’s 15th anniversary with free Hyperskill courses, dive into handling multiple inheritance using Class Delegation, and expose the silent "division-by-zero" trap in Kotlin Multiplatform. We also cover wiring up FCM Push Notifications in Compose (and the undocumented step that breaks iOS), handling precise decimal arithmetic for money in commonMain, building native macOS screen savers, and fresh UI libraries like Composables UI and Kore. Plus, an open Senior Engineering Manager role at Quo.
The Log
The only Kotlin Multiplatform and Compose Multiplatform news you actually need to know.
Celebrate Kotlin’s 15th anniversary this summer. Join Hyperskill now and get free access to our Kotlin courses — from language fundamentals to advanced development topics — through the end of summer. Available for new users only.
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.
Kotlin, like Java, gives you exactly one parent class. Most of the time that’s fine. Occasionally it isn’t, and you end up staring at two base classes that need the same behavior but already extend two different things.
If you write Kotlin Multiplatform code that involves integer division, you may have already hit this: the exact same expression behaves completely differently depending on which platform compiles it.
This article is the setup guide I wish someone had handed me before I started: how to wire up Firebase Cloud Messaging (FCM) in a Kotlin Multiplatform / Compose Multiplatform project, for both Android and iOS, and — more importantly — the one step that has nothing to do with your code and will silently break iOS if you skip it.
TL;DR — There are three ways to store money. Two of them bite back, and Kotlin Multiplatform takes the favorite one off the table.
LazyColumn
Compose Multiplatform tips, tricks, and code snippets.
Recently I built a 3D chess game in Compose Multiplatform: shared Kotlin logic, a 3D board behind a small renderer interface, and four native rendering backends for Android, web, iOS, and desktop. Today I rebuilt the same game on React Native to see what changes and what stays.
This article documents how I created my own custom screen saver for macOS, built almost entirely in Kotlin, using the powers of Kotlin Multiplatform to target macOS.
After 2 years of iterations on Compose Unstyled, a brand new Compose library is born: Composables UI.
Kore is a Compose Multiplatform design foundation that provides beautifully pre-styled components to help you build scalable and consistent design systems.
The Dependency Graph
Curated libraries, tools and plugins that won't break your Gradle build.
- Deci
Deci is a Kotlin Multiplatform library for high-precision decimal arithmetic. Built for money, taxes, invoicing, and any workload whereFloat/Doublecannot be trusted. - kVinInfo
A pure Kotlin Multiplatform library for VIN (Vehicle Identification Number) decoding, validation, and NHTSA API integration. - Vibrance
Natural color mixing for Kotlin and Compose Multiplatform. - Warden Supreme
Warden Supreme is the evolution of the battle-tested WARDEN server-side key and app attestation library, augmented by Signum's Supreme KMP crypto provider for a consistent UX across Android and iOS. - Kamera
A modern camera library for Compose Multiplatform supporting Android, iOS, and Desktop with a unified API. - Sharingan
Live HTTP · MQTT · Bluetooth logging for Kotlin Multiplatform — iOS & Android, one API
Careers
Kotlin Multiplatform job postings and opportunities.
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.
Remote - United States & Canada
We're looking for a Senior Engineering Manager to lead our Foundations team, the group that builds and scales the technical and organizational infrastructure the rest of Quo's engineering org is built on.
Foundations is a uniquely cross-disciplinary team of mobile, web, and backend engineers responsible for the core systems everything else depends on: our GraphQL platform, client data sync, mobile frameworks (Kotlin Multiplatform), CI and testing platforms, and the core architecture of our client systems.
🚀 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
