6 min read

Kotlin Multiplatform Newsletter #15

We cover the launch of the Kotlin Professional Certificate by JetBrains on LinkedIn Learning and a massive $30,000 grant from the Kotlin Foundation to build a KMP Contest Starter Kit. We dive into technical deep dives on Kotlin Flows (Buffer vs. Conflate vs. Debounce), production-grade IoT network connectivity, and the art of KMP Modularization. Plus, new tools like Halogen for AI-generated Material 3 themes, ComposePdf, and a look at iShape, an AI macro tracker built with 100% Kotlin across the entire stack.

The Log

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

🎓
Kotlin Professional Certificate by JetBrains – Now on LinkedIn Learning

JetBrains has partnered with LinkedIn Learning to offer the Kotlin Professional Certificate. This is a structured learning path that covers the full scope of modern software development – from Kotlin essentials all the way to building full-stack, multiplatform applications for mobile, desktop, web, and backend environments.
🏆
Create This Year’s KMP Contest Starter Kit (Kotlin Foundation)

Every year, students and recent graduates compete in the Kotlin Multiplatform Contest to build apps and earn a trip to KotlinConf. To support their efforts, the Kotlin Foundation is offering a new grant for the creation of a KMP Contest Starter Kit. Up to $30,000 is available to support the selected grantee in building an open source sample codebase and accompanying documentation which will be used by contest participants to jumpstart their submission.

The Main Thread

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

🌊
Kotlin Flows: Buffer, Conflate, and Debounce

In Kotlin's Flow API, when we run our emitter and collector on different coroutines, it's possible for the emitter to outpace the collector, producing new values faster than it can consume. What happens to the values when the collector isn't ready for them? In today's video, we look at three strategies we can use for this situation.
🏄
How we built iShape using 100% Kotlin

This is the story of how a team of two built an entire product end-to-end using one language we genuinely believe is superior: Kotlin. iOS, Android, backend, AI pipeline — all of it.

Expect Actual

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

🧩
KMP Modularization: From Layers to Features

A poorly organised car doesn’t fail on the drawing board. It fails in the pit lane, under pressure, when the engineer needs to make a change in three seconds and can’t find what he’s looking for. Your Kotlin Multiplatform project is no different.
🛜
Building a Production-Grade Network Connectivity Layer in Kotlin Multiplatform: The Complete Guide for IoT Transport

A deep technical walkthrough of designing and implementing a shared network monitoring system that works identically on Android and iOS — including SSID, frequency band, interface binding, subnet broadcast, and real-time reactive state — built for IoT UDP transport but applicable to any KMM project that needs to treat connectivity as a first-class concern.

LazyColumn

Compose Multiplatform tips, tricks, and code snippets.

🪭
Kmp Resources Unfold

Kmp Resources Unfold is a professional productivity tool designed for Android Studio and IntelliJ IDEA developers. It bridges a major gap in the IDE by providing visual management for assets across all your Kotlin Multiplatform (KMP) modules.
📄
ComposePdf

A Kotlin Multiplatform PDF rendering and text-extraction library built on top of pdfium and Compose Multiplatform. Compose-first API, and a sample desktop/mobile reader with thumbnails, progressive rendering, and selectable text.

The Dependency Graph

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

  • Halogen
    Halogen turns natural language into complete Material 3 themes at runtime. Give it a prompt like "warm coffee shop" or "neon cyberpunk" and it generates colors, typography, and shapes, all cached so the LLM only runs once per prompt.
  • FileKit
    Pick and save Files, Medias and Folder for Kotlin Multiplatform and Compose Multiplatform - a powerful cross-platform file operations library for Kotlin Multiplatform.
  • SafeGradle
    SafeGradle is a professional-grade security scanner for IntelliJ IDEA that protects your development environment from malicious Gradle build scripts. It identifies security risks like hidden network calls, shell execution, and credential leaks before they can compromise your system.
  • protovalidate-kt
    Kotlin code generation for protovalidate (buf.validate) and protoc-gen-validate (PGV) constraints. Generates Kotlin validation functions from protobuf constraint annotations at compile time via a protoc plugin. Includes a lightweight runtime library for common validation logic.

Target: Production

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

Heron for bluesky - Apps on Google Play
A tiny, graceful bluesky client

→ Link to Heron GitHub repository

iShape: AI Macro Tracker App - App Store
Download iShape: AI Macro Tracker by Ofek Teken on the App Store. See screenshots, ratings and reviews, user tips, and more apps like iShape: AI Macro Tracker.

→ Link to Play Store version

GitHub - reivaj-gg/Clarity: Clarity: A cognitive training and self-awareness laboratory built with Kotlin Multiplatform. Play science-backed games, track your daily context, and unlock AI-driven insights about your mind
Clarity: A cognitive training and self-awareness laboratory built with Kotlin Multiplatform. Play science-backed games, track your daily context, and unlock AI-driven insights about your mind - rei…
GitHub - snj07/req-lab: Open-Source Desktop API client built with Kotlin (KMP). HTTP requests, scripting, variables, collections, and Postman import — runs offline. Alternative to Postman/Insomnia.
Open-Source Desktop API client built with Kotlin (KMP). HTTP requests, scripting, variables, collections, and Postman import — runs offline. Alternative to Postman/Insomnia. - snj07/req-lab

Careers

Kotlin Multiplatform job postings and opportunities.

🏀
Senior iOS/KMP Engineer at Jump

We’re looking for a Senior iOS Engineer to help build and evolve Jump’s mobile apps. You’ll be an early member of our mobile team, contributing hands-on to core features, architecture, and technical direction as our app and platform scale.

Our mobile stack uses Kotlin Multiplatform (KMP) for shared data and domain layers, with a native SwiftUI layer on iOS. In this role, you’ll write production Kotlin Multiplatform code and own the iOS user experience working across the full mobile stack to deliver high-quality, fan-facing features. You’ll collaborate closely with other mobile engineers, product managers, and designers to ship thoughtful experiences to a passionate and growing sports audience.

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