5 min read

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.

Kotlin is turning 15 – and now is a great time to take your Kotlin skills further

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.

Multiple Inheritance in Kotlin. Class Delegation Closes the Gap

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.
The Kotlin Multiplatform division-by-zero trap

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.
Push Notifications in Compose Multiplatform: The Setup Guide I Wish I Had (Including the Mistake That Cost Me 3 Days)

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.
Floating point can’t hold a cent. BigDecimal can, until commonMain.

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.

Building a 3D Game in React Native + Kotlin Multiplatform

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.
Building a macOS screen saver in Kotlin

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.
Introducing Composables UI

After 2 years of iterations on Compose Unstyled, a brand new Compose library is born: Composables UI.
Kore

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 where Float/Double cannot 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.

Senior Engineering Manager, Foundations at Quo
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.

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