4 min read

Kotlin Multiplatform Newsletter #8

Reduced Play Store fees for app developers, deep-dive into architecture wars regarding KMP ViewModels, cross-platform & open source 2FA app, useful Compose Multiplatform libraries and a job opportunity at Touchlab.

The Log

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

☀️
Android ecosystem updates: A new era for choice and openness

Today we are announcing substantial updates that evolve our business model and build on our long history of openness globally. We’re doing that in three ways: more billing options, a program for registered app stores, and lower fees and new programs for developers.

Expect Actual

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

🤖
Is AndroidX ViewModel the best choice for KMP projects?

Sharing ViewModels between platforms affects the iOS developer experience. In this post we will discuss this topic and some possible solutions in KMP projects that respect the native feel of iOS and Android.
🤍
KMP Architecture: The Case for Pure Kotlin ViewModels

In this article, I’ll walk through the “Pure Kotlin ViewModel” pattern I used to keep shared ViewModels platform-agnostic, how I bridged them to SwiftUI using explicit wrappers, and how this approach compares to newer, library-driven alternatives in the evolving KMP ecosystem.
🔄
Building Offline-First Bidirectional Sync in Kotlin Multiplatform

The internet is full of tutorials on how to fetch data from an API and display it in a UI. But very few show you what happens when the network suddenly vanishes mid-operation and what an app that handles that gracefully actually looks like under the hood.

The Dependency Graph

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

  • hyphen
    Markdown-aware rich text editor for Compose Multiplatform. Live formatting, keyboard shortcuts, Markdown clipboard, and undo/redo.
  • compose-icons
    Compose Multiplatform icons is a pack of libraries that provide well known Icon Packs. The library usage is inspired by Compose Material Icons.
  • KMP Maps
    kmp-maps provides a unified map component for Compose Multiplatform applications, offering seamless integration with native map APIs on both Android, iOS and desktop platforms.

Target: Production

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

GitHub - championswimmer/TwoFac: 2FA Authenticator app that works on mobile, web, desktop, watches and CLI!
2FA Authenticator app that works on mobile, web, desktop, watches and CLI! - championswimmer/TwoFac
GitHub - SimonSchubert/Kai: OpenClaw alternative in your pocket
OpenClaw alternative in your pocket. Contribute to SimonSchubert/Kai development by creating an account on GitHub.

Careers

Kotlin Multiplatform job postings and opportunities.

👉
iOS Developer (Swift/KMP) at Touchlab

This role will involve directly building client applications using the latest Swift-based tools and Xcode, and coding and interacting with Kotlin libraries. It will include helping to define how our tools will evolve to serve iOS developers better, and directly working on the tools and libraries we publish.

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