5 min read

Kotlin Multiplatform Newsletter #5

Compose Stability Analyzer 0.7.0 brings live recomposition heatmaps to Android Studio, and we sit down with Kotlin creator Andrey Breslav to discuss what comes after Kotlin. We also deep-dive into building cross-platform persistent caching for Ktor, explore essential Kotlin compiler internals, and compare default vs. buffered SharedFlows. Plus, a new KMP-native HTTP inspector, coachmark libraries for Compose, and job opportunities in robotics.

The Log

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

🎼
Compose Stability Analyzer 0.7.0: Recomposition Cascade and Live Heatmap

Compose Stability Analyzer has been providing real-time stability analysis directly in Android Studio through gutter icons, hover tooltips, inline hints, and code inspections. These features answer the question “is this composable stable?” at a glance.

Version 0.7.0 goes further by answering two additional questions that static analysis alone cannot address: “what happens downstream when this composable recomposes?” and “which composables are actually recomposing the most on a real device?”

The Main Thread

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

👨‍💻
The programming language after Kotlin – with the creator of Kotlin

Andrey Breslav is the creator of Kotlin and the founder of CodeSpeak, a new programming language that aims to reduce boilerplate by replacing trivial code with concise, plain-English descriptions. He led Kotlin’s design at JetBrains through its early releases, shaping both the language and its compiler as Kotlin grew into a core part of the Android ecosystem.
🚀
How Android devs can advance their career with KMP

Join us for a practical webinar where we’ll map out the journey from a dedicated Android expert to a full-stack Kotlin Multiplatform professional. We’ll skip the buzzwords and focus on real-world skills, mindset shifts, and the career opportunities that KMP unlocks.

Expect Actual

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

📦
How I Built Cross-Platform Persistent Cache for Ktor (Android + iOS)

While working on kmp-http-client, a Kotlin Multiplatform project for Android and iOS, I ran into a frustrating limitation. My app needed to cache HTTP responses to improve the offline experience and reduce data consumption. Ktor Client includes the HttpCache plugin, which seemed perfect... until I read the documentation: Persistent caching only works on JVM.
5 Kotlin Internals You Should Know

Kotlin makes writing clean, expressive code feel effortless. Features like data classes, lazy properties, and extension functions save you from the boilerplate that Java developers deal with daily. But behind every concise Kotlin feature is a compiler performing real work, generating bytecode, managing thread safety, and making allocation decisions on your behalf. Understanding what the compiler actually produces helps you write more performant code and make better design decisions.
🦮
Default vs buffered SharedFlow in Kotlin: a practical guide

The default configuration, MutableSharedFlow(), has zero buffer and zero replay. That means values emitted with no active collector are lost, and when collectors are active, tryEmit() fails because there's nowhere to place the value. Adding extraBufferCapacity gives the flow room to absorb emissions when collectors are present. Picking the wrong setup leads to either suspended emitters or silently dropped events.

The Dependency Graph

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

  • Ktor Persistent Cache
    A Kotlin Multiplatform library that adds persistent HTTP caching to Ktor HttpClient. Responses are stored on disk using Okio, with configurable size limits, TTL, and platform-appropriate cache directories.
  • Inspekt
    The KMP-native HTTP Inspector for Ktor — elegant, minimal, and actually useful. Inspekt gives you full visibility into your Ktor network calls on Android and iOS.
  • KorrektKlock
    KorrektKlock is a Kotlin Multiplatform library that provides correct, monotonic, offline-safe UTC time for Android and iOS without relying on device wall-clock settings.

LazyColumn

Compose Multiplatform tips, tricks, and code snippets.

🔦
Lumen

A Compose Multiplatform coachmark library that creates true transparent cutouts in the overlay scrim. Your actual UI remains visible and interactive through the spotlight - animations play, buttons respond, nothing is faked.

Target: Production

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

GitHub - mohaberabi/staff-mates: Kotlin Multiplatform Staff management & Attendance Tracking With NFC App
Kotlin Multiplatform Staff management & Attendance Tracking With NFC App - mohaberabi/staff-mates
GitHub - mohaberabi/kueue: Compose Multiplatform Thermal Printer Simulator
Compose Multiplatform Thermal Printer Simulator . Contribute to mohaberabi/kueue development by creating an account on GitHub.
GitHub - Coding-Meet/News-KMP-App: News Kotlin Multiplatform project designed to target Android, iOS, Windows, macOS, Linux platforms.
News Kotlin Multiplatform project designed to target Android, iOS, Windows, macOS, Linux platforms. - Coding-Meet/News-KMP-App

Careers

Kotlin Multiplatform job postings and opportunities.

🤖
Mobile App Developer - Java/Kotlin Multiplatform at AION ROBOTICS CORPORATION

This is a contract Mobile Developer Position. You will work on cutting-edge mobile application development projects utilizing the latest Java/Kotlin Cross-Platform and AWS technologies to create innovative, real-time vehicle control solutions similar to those used in consumer drones.

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