5 min read

Kotlin Multiplatform Newsletter #7

We gear up for KotlinConf’26 in Munich and look at how Masabi uses KMP to power global public transit. We dive into non-intrusive integration strategies for native apps, modern project structures for Compose Multiplatform, and creating custom line graphs. Plus, explore new libraries like Fakt and JetCo, and check out a featured freelance Lead KMP Developer role at Valtech.

The Main Thread

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

🎪
15 Things To Do Before, During, and After KotlinConf’26

Maybe it’s your first time in Munich, or even your first time at KotlinConf. You have your tickets, you’ve learned the schedule by heart, but it might still feel a little overwhelming. Let me show you how you can have the best possible experience by guiding you through all the things you can do.

Believe me, KotlinConf is so much more than a conference!
🚋
How Major Metros Run on Kotlin Multiplatform | Talking Kotlin #145

When you tap through a transit gate in major cities around the world, there's a real good chance you’re touching Kotlin Multiplatform! In this episode, we sit down with Paweł Kwieciński from Masabi to explore how they brought a decade-old Java codebase to Kotlin Multiplatform, powering ticket validation across mobile apps, embedded devices, and backend systems for public transit agencies worldwide.
🔮
Is Kotlin Multiplatform the future of Mobile development?

Kotlin Multiplatform first came onto the scene in 2017, but it really caught attention when Google announced support for sharing code between Android and iOS at Google I/O 2024. This was a big deal for developers! Kotlin Multiplatform lets you write code once and use it on both platforms, which saves a ton of time while still allowing for platform-specific tweaks when needed.

Expect Actual

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

🌉
Bridging the Gap: Integrating KMP into Pure Native Apps Without Breaking the Workflow

This article explores a pragmatic experiment: starting from two fully native applications — Android (Kotlin) and iOS (Swift) — and introducing a shared Analytics feature using a non-intrusive integration strategy.

The goal is simple: the iOS application should consume the shared module exactly like any other Swift Package dependency, without Gradle or Kotlin-specific tooling.
🏗️
My Compose Multiplatform Project Structure

Compose Multiplatform (CMP) project structure is evolving with the recent AGP 9.0 changes that move the androidApp out of the composeApp and with what looks like more changes on the horizon for KMP apps. Here is how I decided to structure my CMP projects.

This structure is ready for today, and I believe that it should adapt easily when these future KMP changes land.

The Dependency Graph

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

  • Fakt
    Automate the fake-over-mock pattern. Fakt generates type-safe test doubles that eliminate boilerplate.
  • JetCo
    Your ultimate Open-Source partner for crafting visually stunning, interactive, and efficient UI components across multiple platforms including Android, iOS, JVM, JS, and WASM.
  • bonsai
    This toolwindow plugin provides a visual representation of your project structure on an interactive canvas with zoom and pan capabilities.

LazyColumn

Compose Multiplatform tips, tricks, and code snippets.

📈
Creating Custom Line Graphs in Jetpack Compose & Kotlin Multiplatform

Most charting libraries for Compose either have bloated dependencies, are Android-only, or offer very limited customization — you get a chart that works but doesn’t quite look like yours.

Target: Production

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

GitHub - RajashekarRaju/hangman-compose: 🎮 Kotlin Multiplatform Hangman (Android, Desktop, Web, iOS) built with Compose Multiplatform. Modular architecture with shared game engine, dynamic word catalog (DSL), responsive layouts, custom creepy-themed UI + animations, cross-platform audio, hints/timer/difficulty modes, persistent settings/history, automated CI/CD deployed to GitHub pages.
🎮 Kotlin Multiplatform Hangman (Android, Desktop, Web, iOS) built with Compose Multiplatform. Modular architecture with shared game engine, dynamic word catalog (DSL), responsive layouts, custom cr…
💊
Parenty: Medicine Tracker
Play Store Link
App Store Link

Parenty is the essential companion for parents, designed to take the stress out of managing your children's health. Whether you’re dealing with a common cold or managing long-term treatments, Parenty helps you stay organized, ensures doses are never missed, and keeps a clear record of your child's recovery journey.

Careers

Kotlin Multiplatform job postings and opportunities.

🤖
Freelance Lead Mobile Developer (Kotlin Multiplatform) at Valtech

 We are looking for a Kotlin Multiplatform Developer with experience in both iOS and Android Native to join our mobile development team and work on building a cross-platform application. 

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