> ## Content Index
> Fetch the complete content index at: https://commonmain.dev/llms.txt
> Use this file to discover other available public pages before exploring further.

# Kotlin Multiplatform Newsletter #38
- URL: https://commonmain.dev/kotlin-multiplatform-newsletter-38/
- Published: 2026-10-06T13:00:17.000Z
- Updated: 2026-10-06T13:00:17.000Z
- Author: Bogdan Codes
- Tags: Issues

**The State of Kotlin in 2026 Report** reveals Kotlin Multiplatform is now present in nearly 3% of top App Store apps, outpacing the growth rate of Flutter and React Native. Meanwhile, JetBrains announces the discontinuation of Swift language IDE support inside the KMP plugin. We also analyze iOS build time benchmarks (`Swift` vs `KMP`), architecting Free vs. Full product flavors in `commonMain`, running machine learning with **KTensorFlow 2.0**, and integrated FFmpeg video playback via **KitePlayer**. Plus, a remote Mobile Technical Lead opportunity at Accesa.

### **The Log**

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

[The State of Kotlin in 2026 Report](https://blog.jetbrains.com/kotlin/2026/09/state-of-kotlin-2026-report/?ref=commonmain.dev)  
  
In 2026, Kotlin turned fifteen. Over those fifteen years, Kotlin has built a mature ecosystem, been adopted by companies around the world, and established a large and active developer community.  
  
****Key KMP facts:**  
\- Nearly 3% of the top 10,000 App Store apps by mid-2026 are using KMP, up from under 1% in early 2024\. Growing faster than Flutter and React Native.  
\- KMP apps in the top 10,000 match Flutter apps in total App Store revenue.  
\- 31% of Kotlin developers work on multiplatform projects.

[Discontinuing Swift Language IDE Support in the Kotlin Multiplatform Plugin](https://blog.jetbrains.com/kotlin/2026/10/discontinuing-swift-language-ide-support-in-the-kotlin-multiplatform-plugin/?ref=commonmain.dev)  
  
Starting with IntelliJ IDEA 2026.3 and Android Studio Rabbit 2 | 2026.2.2, we’re discontinuing Swift language IDE features in the Kotlin Multiplatform (KMP) plugin. This includes editing, syntax highlighting, and navigation within Swift files and between Swift and Kotlin.

### Expect Actual

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

affiliate link 

****Stop treating Kotlin like a black box! 🧠**  
  
To build truly performant multiplatform apps, writing code that just "works" isn't enough. We need to understand what the compiler is actually doing under the hood.

That’s why I highly recommend [****Practical Kotlin Deep Dive**](https://skydoves.gumroad.com/l/kotlin-deep-dive?a=705284499&ref=commonmain.dev) by skydoves. This isn't a basic syntax guide, it breaks down Kotlin internals, bytecode, and coroutines. It’s been a total game-changer for me when writing and optimizing shared code.  
  
If you want to level up your Kotlin and KMP skills to a senior standard, you need this on your desk.

[Get the Book ](https://skydoves.gumroad.com/l/kotlin-deep-dive?a=705284499&ref=commonmain.dev) 

[The Companions to Come](https://blog.jetbrains.com/kotlin/2026/09/the-companions-to-come/?ref=commonmain.dev)  
  
We are working on extensions to our companions mechanism to unlock new code patterns and improve interoperability across different platforms. This post outlines these new features and provides preliminary guidance on migration.

[Telemetry: Shared Analytics and Crash Reporting in Kotlin Multiplatform](https://medium.com/@kmpbits/telemetry-shared-analytics-and-crash-reporting-in-kotlin-multiplatform-kmp-bits-af77f81c153b?ref=commonmain.dev)  
  
In a modern endurance car, every sensor talks to the same box. Tyre pressure, brake temperature, fuel flow, throttle trace. They all end up in one data stream that goes to the pit wall over a single radio link. The engineer on the wall doesn’t care which supplier made the brake sensor. He cares that the channel is called `BRAKE_TEMP_FL` and that the number arrives every 100 milliseconds.  
  
Swap a sensor, the channel name stays. That’s the whole point of the standard. Analytics and crash reporting in a KMP app should work the same way. The sensors are the SDKs, one per platform, made by different teams with different APIs. The channel names are yours.

[How I Built Free and Full Build Flavors for Android in My KMP Codebase](https://avik-sharma-chy.medium.com/how-i-built-free-and-full-build-flavors-for-android-in-my-kmp-codebase-511bffdcc28c?ref=commonmain.dev)  
  
This part is about how one codebase builds both versions: a free app with only the core features, and a full app with everything. I’ll cover product flavors, how the free app leaves the premium features out, and how the shared code works with either version without knowing which one it’s in.

[Kotlin Multiplatform iOS build times: what's actually driving the cost](https://johnoreilly.dev/posts/kmp-ios-build-times/?ref=commonmain.dev)  
  
A recent article, [The Hidden Cost Behind Kotlin Multiplatform on iOS](https://kaanbiryol.com/the-hidden-cost-behind-kotlin-multiplatform-on-ios/?ref=commonmain.dev), looked at what KMP does to the iOS edit/build/run feedback loop. It’s a good question to ask and the article also comes with a benchmark harness ([kmp-ios-benchmark](https://github.com/kaanbiryol/kmp-ios-benchmark?ref=commonmain.dev)) that compares a Swift-only setup against an equivalent KMP one, using generated code across clean, incremental, public API change, multi-module and release builds. The headline numbers were that a single internal change rebuilt in 3.19s for Swift vs 10.36s for KMP, and that the gap grew with module size (KMP adding \~4.2x more time per 100 files than Swift).

### LazyColumn

Compose Multiplatform tips, tricks, and code snippets.

[Offline Support for Compose Multiplatform Web Apps](https://terrablog.pages.dev/blog/offline-support-compose-multiplatform-web-apps/?ref=commonmain.dev)  
  
When a user runs an app in a browser, it’s reasonable to assume they have an internet connection. But if a user has installed a PWA app and its icon is available on the desktop, it’s reasonable to expect it to behave like a native app when there’s no internet connection.

[How to create a Ribbon Modifier in Jetpack Compose](https://www.youtube.com/watch?v=CTA2QgIjrW0&ref=commonmain.dev)  
  
Building a ribbon using canvas functions that wraps around any composable in Jetpack Compose.   
We define a path along a moving circle, split it into segments and draw using gradients

### The Dependency Graph

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

- [**KMP Project Wizard**](https://plugins.jetbrains.com/plugin/31786-kmp-project-wizard?ref=commonmain.dev)  
KMP Project Wizard generates a Kotlin Multiplatform project straight from `File → New Project` in IntelliJ IDEA and Android Studio.
- [**kmp-ads**](https://github.com/shivathapaa/kmp-ads?ref=commonmain.dev)  
A Kotlin Multiplatform ads library for Android and iOS, with Compose Multiplatform ad slots and a Google AdMob provider.
- [**Compose Web Navigator**](https://github.com/Taz03/compose-web-navigator?ref=commonmain.dev)  
Compose Web Navigator is a library that provides navigation capabilities for Compose Multiplatform Wasm applications. It allows developers to easily manage navigation between different screens and handle browser history.
- [**HumanReadable**](https://github.com/jacobras/Human-Readable?ref=commonmain.dev)  
A small set of data formatting utilities for Kotlin Multiplatform (KMP).
- [**Compose Text Editor**](https://github.com/Darkrock-Studios/ComposeTextEditor?ref=commonmain.dev)  
Compose's missing Rich Text editor.
- [**KTensorFlow 2.0**](https://github.com/kursor1337/KTensorFlow?ref=commonmain.dev)  
KTensorFlow is a Kotlin Multiplatform library designed to run LiteRT (TensorFlow Lite) neural network models from common code.
- [**Kinvoicing**](https://github.com/chrisjenx/kinvoicing?ref=commonmain.dev)  
Kotlin Multiplatform invoicing library with a sealed IR, type-safe DSL builder, and four renderers (Compose, PDF, HTML, Email HTML).
- [**Prosa.kt**](https://prosakt.com/?ref=commonmain.dev)  
Declarative code generation for Kotlin. Define classes, functions, and expressions in pure Kotlin. Prosa.kt handles the imports, escaping, and formatting.
- [**KitePlayer**](https://github.com/yuroyami/KitePlayer?ref=commonmain.dev)  
A media playback library for Kotlin Multiplatform apps. Its engine is written in Kotlin and plays video, audio and subtitles on Android, iOS, macOS, the desktop JVM and the web, with FFmpeg already inside the artifacts through [KiteFFmpeg](https://github.com/yuroyami/KiteFFmpeg?ref=commonmain.dev).

[](https://github.com/chrisjenx/kinvoicing?ref=commonmain.dev#kinvoicing)

### Target: Production

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

SPONSORED 

****wellfound** • Where great companies meet great people.  
  
The next company that changes the world, and the role that changes yours. Wellfound is where 27,000+ startups hire. Apply directly to the founders and hiring managers building what's next.

[Find Your Next Remote Job ](https://wellfound.com/l/2ABERG?ref=commonmain.dev) 

[SubAtomic: Habit Tracker App - App StoreDownload SubAtomic: Habit Tracker by sinasamaki on the App Store. See screenshots, ratings and reviews, user tips and more games like SubAtomic: Habit Tracker.![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/icon/favicon-32-c76e783b-2cbe-4111-a9af-b508f7b097fe.png)App Storesinasamaki![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/thumbnail/1200x630wa-32612775-5152-43e6-a2b7-ef9aaffa0ada.jpg)](https://apps.apple.com/no/app/subatomic-habit-tracker/id6812532289?ref=commonmain.dev)

[Leben in DE: Einbürgerungstest - Apps on Google PlayMaster the Einbürgerungstest with official questions and realistic mock exams.![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/icon/favicon_v3-bc025409-6572-4df2-80ce-3c99b4691100.ico)Apps on Google PlayMetalHeadCoder![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/thumbnail/XxEzK9mkWVFd9tzp8-gKaKh2W4LaFlN6bkzuiaLm4o5D7sh8WIdoucElM6ZSgUFpEWBZxcOX60gMQaZDM_31Ow-s0-br30-490def88-95ed-4a76-b6ec-b148f0e45b6a.png)](https://play.google.com/store/apps/details?id=org.metalheadcoder.lebenindeutschland&ref=commonmain.dev)

[Cutaway — AI Video EditorCutaway is a mobile video editor with an AI agent that can assemble a first cut from your own footage — then hands you every frame of it to change by hand.![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/icon/icon-192-f84ed9b6-53e1-443c-a1e4-6e5d194ae379.png)Cutaway![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/thumbnail/og-image-1ac20db0-1af4-4bc0-9c45-0ed674c11a1f.png)](https://cutaway.design/?ref=commonmain.dev)

[GitHub - yuroyami/syncplay-mobile: 📱 Syncplay Mobile (now Synkplay) is a Syncplay client app for Android and iOS. Watch stuff in sync with your friends. Compatible with the official Syncplay for PC. Fully written in Kotlin and Compose multiplatform.📱 Syncplay Mobile (now Synkplay) is a Syncplay client app for Android and iOS. Watch stuff in sync with your friends. Compatible with the official Syncplay for PC. Fully written in Kotlin and Compo…![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/icon/favicon-b9413e05-bd90-4678-8d50-d58bf759c6af.png)GitHubyuroyami![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/thumbnail/syncplay-mobile-0f67ba49-d164-44e3-9d24-a081585333b1.png)](https://github.com/yuroyami/syncplay-mobile?ref=commonmain.dev)

### Careers

Kotlin Multiplatform job postings and opportunities.

affiliate link 

****hackajob** • **Meet Archer, your AI job matching agent**  
  
5x more interviews. Zero guesswork. Archer works 24/7 to match you with roles that fit your stack and seniority. You review the matches, not the job boards.

[Create your free profile ](https://hackajob.com/talent/invite?referral%5Fid=ce111234ec9b294c075f&ref=commonmain.dev) 

[Mobile Technical Lead with Kotlin Multiplatform](https://jobs.smartrecruiters.com/ACCESA/744000153180765-mobile-technical-lead-with-kotlin-multiplatform?ref=commonmain.dev) at [Accesa](https://accesa.eu/?ref=commonmain.dev)  
**Remote - Romania*  
  
The shared business logic layer is built with Kotlin Multiplatform (KMP), targeting both JVM/Desktop and Android clients. This layer is the heart of the platform: it owns the domain rules, use cases, and data flows for critical retail operations — item registration, checkout, payment, customer management, and promotion handling — while remaining fully decoupled from platform-specific concerns and UI.

---

#### 🚀 Get Featured!

Got something interesting to share with the Kotlin Multiplatform community? [Submit your link](https://commonmain.dev/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](https://commonmain.dev/sponsor/).

#### ✍ 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

![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/2026/06/kodee-mail-v1-upscaled-2-1-1.png) 

## Sign up for commonMain.dev

Every Tuesday, the few KMP links actually worth your time.  
Hand-picked, no AI filler.

Join free 

Email sent! Check your inbox to complete your signup. 

Free forever · One email every Tuesday · No spam, unsubscribe anytime.  
Hand-picked by a senior engineer (8+ yrs) · Read by KMP engineers & tech leads.