> ## 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 #35
- URL: https://commonmain.dev/kotlin-multiplatform-newsletter-35/
- Published: 2026-09-15T13:00:25.000Z
- Updated: 2026-09-15T13:00:27.000Z
- Author: Bogdan Codes
- Tags: Issues

**Koin Compiler 1.2** introduces full compile-time validation across all existing Koin application DSLs. We also discuss Shopify's decision to pivot back to native mobile development driven by AI/LLMs, Jake Wharton's post-Cash App engineering values, and securing RevenueCat entitlements across multi-client apps. Plus, running Compose Web offline with Service Workers, Google's **Now in Android** full KMP port, JVM-free **Compose Desktop Native** via SDL3, and production insights from Sony and Booking.com.

### **The Log**

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

[Koin Compiler 1.2: Compile-Time Safety for ALL Koin DSL](https://blog.insert-koin.io/koin-compiler-1-2-compile-time-safety-for-all-koin-dsl-4603787b9921?ref=commonmain.dev)  
  
Compile-time validation now works on the Koin application you already have, where before 1.2 it only covered code written specifically for the compiler plugin.

### **The Main Thread**

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

[Kotlin 2026: Layoffs, AI, Google — Is the Golden Age Over? Jake Wharton Explains](https://www.youtube.com/watch?v=9WjPdgOK-68&ref=commonmain.dev)  
  
Jake Wharton quit his job at Cash App in November 2025, in the middle of massive tech layoffs. After that, he published nine values for his next employer, number one was "No AI." Jake explains why and what else made the list.

[Native is now the future of mobile at Shopify](https://shopify.engineering/back-to-native?ref=commonmain.dev)  
  
We don’t hold on to a decision just because it was successful at the time. When a core assumption changes, we’re willing to go back and ask whether it’s still the right call. LLMs changed one of the core assumptions behind our 2020 decision, so we reevaluated our mobile stack from first principles.

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

[Wiring Up RevenueCat in a Kotlin Multiplatform App: Entitlements, Webhooks, and Why the Client Should Never Be Trusted](https://dev.to/wolfof420street/wiring-up-revenuecat-in-a-kotlin-multiplatform-app-entitlements-webhooks-and-why-the-client-1387?ref=commonmain.dev)  
  
I'll walk through how I wired subscriptions into Affirmi across Android, iOS, Desktop, and Web using RevenueCat, and the mistake I almost made before I really thought through what an entitlement should mean when you have multiple clients talking to the same backend.

[How to Make a Compose Web Application Work Offline](https://youtrack.jetbrains.com/issue/CMP-10781?ref=commonmain.dev)  
  
After a production build, a Compose Web application consists of a standard set of static files: `index.html`, JavaScript, WebAssembly, and Compose Resources. To allow the application to load without a network connection, these files can be stored in the browser's Cache Storage in advance using a Service Worker.

[SignalBrief After the KMP Migration: From Foundation to a Cross-Platform Product](https://medium.com/@recipesforsoftware/signalbrief-after-the-kmp-migration-from-foundation-to-a-cross-platform-product-3d300fed277f?ref=commonmain.dev)  
  
A few weeks ago, I wrote about how SignalBrief evolved from a focused Android MVVM application into an offline-first Kotlin Multiplatform project for Android and iOS. The next question was more interesting: Can that architecture continue to scale when the application starts gaining actual product features — and a third runtime?

[Compose Multiplatform in Production: Lessons from Sony and Booking.com](https://medium.com/@santimattius/compose-multiplatform-in-production-lessons-from-sony-and-booking-com-580b0774b1c1?ref=commonmain.dev)  
  
Sony and Booking.com used Compose Multiplatform to solve different problems. Their cases demonstrate how to share UI without making portability a higher priority than the product itself.

[Now in Android KMP](https://github.com/skydoves/nowinandroid-kmp?ref=commonmain.dev)  
  
Now in Android KMP is a full Kotlin Multiplatform port of Google's Now in Android sample, running the same screens, ViewModels, navigation, and data layer on Android, iOS, desktop, and the browser from one shared codebase.

### LazyColumn

Compose Multiplatform tips, tricks, and code snippets.

[Compose has progressive blur. Do you still need Haze?](https://chrisbanes.me/posts/compose-progressive-blur/?ref=commonmain.dev)  
  
It’s great to see Compose add UI features like this. The distinction from Haze’s main use case is which content gets blurred: it blurs the composable’s own content, not whatever is behind it.

[Make your mobile app feel alive with Rive](https://pinkroom.dev/blog/make-your-mobile-app-feel-alive-with-rive?ref=commonmain.dev)  
  
Many mobile apps are built with excellent engineering but still fail to win over users. The UI feels rough, the experience doesn't match what people expected, and they quietly stop using the app or never recommend it. Unfortunately, nobody writes a review praising a clean architecture. As mobile developers, we own that first impression. The screen the user sees is the whole product to them, so it has to look good and feel good to use. Getting this right is halfway to retaining users and to having them recommend the app to their friends.

### The Dependency Graph

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

- [**Rive CMP**](https://github.com/muazkadan/Rive-CMP?ref=commonmain.dev)  
A Compose Multiplatform wrapper library for integrating Rive animations, providing a unified API to use rive-android, rive-ios, @rive-app/canvas, and a JNI bridge to rive-runtime seamlessly across Android, iOS, Web, and Desktop platforms.
- [**DevView**](https://github.com/worldline/devview?ref=commonmain.dev)  
A Kotlin Multiplatform library that adds an in-app developer overlay to Android and iOS apps. The overlay hosts pluggable modules for feature flags, analytics inspection, and network mocking.
- [**Compose Desktop Native**](https://github.com/bitsycore/compose-desktop-native?ref=commonmain.dev)  
Run Compose Multiplatform as a native binary, with no JVM. Compose Desktop Native compiles to a single executable for macOS (arm64), Linux (x64/arm64), and Windows (mingwX64), using [SDL3](https://libsdl.org/?ref=commonmain.dev) for windowing and input.
- [**kmpfire\_cli**](https://github.com/dungngminh/kmpfire%5Fcli?ref=commonmain.dev)  
A CLI to help with using [Firebase](https://firebase.google.com/?ref=commonmain.dev) in your Kotlin Multiplatform / Compose Multiplatform applications.
- [**Inklet**](https://github.com/ggoggam/inklet?ref=commonmain.dev)  
A native Kotlin / Compose Multiplatform port of the hand-drawn renderer from [Drawably](https://github.com/Danilaa1/drawably?ref=commonmain.dev). Targets Android, iOS arm64, the iOS arm64 simulator, desktop JVM, and WebAssembly (Wasm/JS).
- [**GuideKit Compose**](https://github.com/tharukack/guidekit?ref=commonmain.dev)  
Build polished product tours, onboarding flows, spotlight overlays, smart arrows, instruction cards, and automatic scrolling in Kotlin Compose.
- [**BackupKit**](https://github.com/vaazh-studios/backupkit?ref=commonmain.dev)  
Kotlin Multiplatform backup into the user's own cloud: iCloud Drive on iOS, Google Drive app-data on Android. No server, no accounts.
- [**WidgetBridge**](https://github.com/vaazh-studios/widgetbridge?ref=commonmain.dev)  
Typed, atomic handoff of data and images from a Kotlin Multiplatform app to its home-screen widgets: Jetpack Glance on Android, WidgetKit on iOS. The widget extension never links Kotlin.
- [**App-Commander**](https://github.com/OlliZi/app-commander/?ref=commonmain.dev)  
Your programmable multi-device execution helper. Execute your custom scripts for your apps on multiple devices.

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

[Affirmi — Come back to yourselfMood-aware affirmations, a little more compassion, and a practice that moves with your real life.![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/icon/affirmi-official-logo_f280e549_8813d4f5-4cdac78a-4713-48c5-a8fc-6946f35ca4cd.webp)AffirmiAffirmi![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/thumbnail/affirmi-social-card_046babad-f4e86868-d5c2-43d0-9f48-dbc511e68ab3.png)](https://www.affirmi.tech/?ref=commonmain.dev)

[Habiora — Grow your habits into a forestEvery habit is a tree. Keep it up and your forest fills in. Coming soon — join the waitlist.![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/icon/favicon-32-b3ea73dd-6f04-4e52-80e0-5c9154359d65.png)Habiora![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/thumbnail/og-v2-527ea525-0fe8-4511-b248-98c47761035c.jpg)](https://habiora.co/?ref=commonmain.dev)

[Vocabloot: Snap your world. Learn the words!Point your camera at anything and learn the word for it in 10 languages, with pronunciation, examples, and mini-games. Free to download.![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/icon/favicon-48x48-ffe42d52-3e90-4740-9525-20408f608688.png)VocablootVocabloot![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/thumbnail/og-image-79921613-8330-42e1-ae0f-6d4196976b28.jpg)](https://vocabloot.com/?ref=commonmain.dev)

[GitHub - jaatayushh/ayushmuzic: AyushMuzic: A modern, open-source multiplatform music player for Android, Windows, macOS, and Linux built with Kotlin Compose.AyushMuzic: A modern, open-source multiplatform music player for Android, Windows, macOS, and Linux built with Kotlin Compose. - jaatayushh/ayushmuzic![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/icon/favicon-b2335d06-c448-4a7b-b920-7ada407299df.png)GitHubjaatayushh![](https://opengraph.githubassets.com/6f3d0d738d1bd1318e69884e9406e5ae883479623e49076eebf1d6b338c753e9/jaatayushh/ayushmuzic)](https://github.com/jaatayushh/ayushmuzic?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) 

[Lead Mobile Engineer (Contractor)](https://jobs.ashbyhq.com/hauler-hero/0bed2acb-9cfb-41a9-8836-ea745b97d592?ref=commonmain.dev) at [HAULER HERO](https://www.haulerhero.com/?ref=commonmain.dev)  
**Remote — Eastern Europe & LATAM*  
  
We are hiring a Lead Mobile Engineer (Contractor) to be the most senior engineer on our mobile team. Today we have a native Kotlin Android app; you will help evaluate Kotlin Multiplatform and lead the build-out of our first iOS app (iPad first, phones later) while strengthening the offline-first foundation across both platforms.

---

#### 🚀 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.