6 min read

Kotlin Multiplatform Newsletter #12

We discuss the diversification of Kotlin as Android developers now make up only 25% of the community, and examine the strategic wind-down of Android KTX. We also feature a technical deep dive into Coroutine bridges for callback-based APIs, a look at writing your first Kotlin compiler plugin, and a showcase of the first native block-based editor for Compose Multiplatform. Plus, new tools for AI-driven orchestration, image metadata, and a Senior Staff role at Fanatics.

The Main Thread

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

🐙
Kotlin Devs Diversify: Android is 25% Now

Hadi Hariri discusses the changing profile of the Kotlin community, noting that at the first Kotlin Conf, about 75% of attendees were Android developers, but now Android is only around 25 to 30%. The community has become more diversified technologically, attracting people with server and mobile backgrounds.
🛠️
An update on Android KTX

Eight years ago we launched a library of Kotlin extensions for the Android platform, Android KTX. In the time since, the library became Core KTX, and numerous other KTX libraries were written for other AndroidX libraries. And while KTX's approach to adding Kotlin niceties was built on a strong technology foundation, we’ve made the difficult decision to begin winding down our KTX extension libraries.
How KMP Helped a 378-Year-Old Company

Anshika Kaul shares how Posten Bring used Kotlin Multiplatform to centralize business rules from a legacy monolith and improve life for both developers and the business. She explains how the team built trust through small, measurable wins, got product owners reading Kotlin and opening PRs, and turned shared logic into live documentation.

Expect Actual

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

🐱
Kotlin Coroutine bridges: converting any callback-based Android API to suspend functions

This article explores the suspendCoroutine bridge pattern, showing how to convert callback APIs into clean suspend functions, handle diverse callback shapes, design proper error propagation, and how SDKs like RevenueCat apply it at scale.
🔬
Writing My First Kotlin Compiler Plugin (And Figuring It Out Along the Way)

This is not a tutorial. I’m not presenting expertise here. I’m documenting my first working implementation and what I understood while building it. The goal is intentionally simple: Build a Kotlin compiler plugin that logs every class during compilation.

LazyColumn

Compose Multiplatform tips, tricks, and code snippets.

📝
Cascade Editor

The first native block-based editor for Compose Multiplatform. Notion/Craft-style editing, implemented as a shared Kotlin editor core for Android and iOS: draggable blocks, slash commands, rich-text spans, custom block types, and versioned document serialization, all without WebView, HTML/contentEditable, or embedded JavaScript editors.

The Dependency Graph

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

  • koog-compose
    A developer-first Kotlin Multiplatform (KMP) runtime for building AI-driven features that orchestrate app logic, device capabilities, and UI from a single declarative DSL.
  • Printer KMP
    A powerful, lightweight Kotlin Multiplatform library designed to make interacting with ESC/POS thermal receipt printers effortless. Built exclusively for Android and Desktop (JVM) targets, this library provides a fluent API for hardware control, reactive connection monitoring, and seamless Jetpack Compose UI capturing.
  • Maryk
    A Kotlin Multiplatform framework for defining, validating, serializing, and storing data models consistently across multiple platforms, including iOS, macOS, watchOS, tvOS, Linux, Windows, Android, JVM, JavaScript and Wasm.
  • Kim - Kotlin Image Metadata
    Kim is a Kotlin Multiplatform library for reading and writing image metadata.
  • KtorMonitor
    Powerful tool to monitor Ktor Client requests and responses, making it easier to debug and analyze network communication. Full support for Android, iOS, Desktop (JVM), Wasm, and JS.
  • cryptography-kotlin
    A cryptography library for Kotlin Multiplatform, which wraps well-known future-proof platform-native solutions like OpenSSL, CryptoKit, WebCrypto or JCA with a type-safe uniform API, aligned defaults as well as tested for cross-compatibility between platforms.

Target: Production

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

TVee — Universal Remote App for Android TV & Google TV
Turn your phone into a free universal Smart TV remote. TVee works with any Android TV & Google TV, offers voice search, keyboard input, and instant auto-detection.

→ Creator Reddit Thread

TeaCabinet — Tea Timer & Collection App
Your personal tea collection manager for Android and iOS.
GitHub - rezaiyan/Lexicon: Lexicon: Kotlin Multiplatform vocabulary learning app
Lexicon: Kotlin Multiplatform vocabulary learning app - rezaiyan/Lexicon

Careers

Kotlin Multiplatform job postings and opportunities.

🥅
Senior Staff Engineer - Mobile at Fanatics

As a Senior Staff Mobile Engineer, you’ll be responsible for powering the rapidly growing Fanatics Markets app. In your role, you'll be recognized as a technical leader, combining strategic thinking with hands-on execution. You'll lead ambitious projects, setting the standard for your team through innovative solutions. Your bold decisions will strike the right balance between addressing immediate business needs and ensuring long-term technical excellence. Through your leadership, you’ll foster a culture of excellence and innovation, leaving a lasting impact on both your immediate team and the broader mobile development community.

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