> ## 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 #40
- URL: https://commonmain.dev/kotlin-multiplatform-newsletter-40/
- Published: 2026-10-20T13:00:00.000Z
- Updated: 2026-10-20T13:00:00.000Z
- Author: Bogdan Codes
- Tags: Issues

The Kotlin compiler sets **JDK 17** as its minimum runtime starting in Kotlin 2.5, SKIE and Swift Export are compared for modern iOS interop, and Verifone’s lead architect shares lessons on compiler-enforced rules in mission-critical payment systems. We also explore sharing design tokens across native UIs, shipping an AI running coach with a native Apple Watch app in KMP, and visual diff testing with **Spyglass** (with full MCP support for AI coding agents). Plus, roles at Fanatics and ELEKS.

### **The Log**

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

[The Kotlin compiler is moving to JDK 17 as its minimum runtime.](https://youtrack.jetbrains.com/issue/KT-88173?ref=commonmain.dev)  
  
Here's the plan:  
• 2.5.0-Beta1: A warning when you run the compiler on a JDK older than 17.  
• 2.5.0-Beta2 and 2.5.0: An error, with a flag to keep using your current JDK for now.  
• 2.5.20-Beta1 and later: JDK 17 or newer is required.  
  
If your machines or CI still run the compiler on an older JDK, now is a good time to plan the update.

### **The Main Thread**

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

[What’s the Right Choice for Your Kotlin Multiplatform Project: SKIE or Swift Export?](https://youtu.be/04rytm08cXM?ref=commonmain.dev)  
  
Kotlin Multiplatform has long had a challenge when it comes to Swift interoperability. Kotlin/Native relies on an Objective-C interface, which can make working with features like Flow, suspend functions, enums, and sealed classes more complicated for iOS developers. SKIE has helped teams work around these limitations for years. Now, JetBrains is developing Swift Export as a different approach.

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

[KotlinConf Recap: Lessons from Verifone’s Architect on Kotlin in Mission-Critical Payments](https://blog.jetbrains.com/kotlin/2026/10/kotlinconf-recap-lessons-from-verifone-s-architect-on-kotlin-in-mission-critical-payments/?ref=commonmain.dev)  
  
Yuri is an architect at Verifone, where he works across payment terminals, gateways, and the systems that connect them to banks and regulators in the EMEA region. His method, in one line: write code in the exact words of the regulator or card network specs, and let the compiler enforce it. Enforce not by discipline, but by the compiler.

[Front Wing, Not Small Wing: Design Tokens for Native UI in KMP](https://medium.com/@kmpbits/front-wing-not-small-wing-design-tokens-for-native-ui-in-kmp-kmp-bits-3595b281d1b4?ref=commonmain.dev)  
  
A while ago I wrote about enforcing design system rules with Detekt, and I was pleased with myself. Colors, spacing, all of it behind a rule. Then I started moving the iOS side of a template project onto the same tokens, and I went looking for every rounded corner in both apps.  
  
The problem never was that the values were wrong. The problem was that `medium` doesn’t say what it’s for, so every component picks a number and every platform picks a different one.

[Kotlin Multiplatform, Infrared and Wi-Fi: A Remote for Everything That Blinks or Listens](https://medium.com/@jacksonfdam/kotlin-multiplatform-infrared-and-wi-fi-a-remote-for-everything-that-blinks-or-listens-110036993414?ref=commonmain.dev)  
  
I wanted one app, written once in Kotlin Multiplatform, running on my Mac, my Android phone and an iPhone, that could talk to all of them. KMP is very good at sharing code across platforms. It is very bad at physics. No amount of `expect` and `actual` will make a MacBook emit infrared. I checked.

[What I learned shipping a running app with Kotlin Multiplatform, Compose, and a native Apple Watch app](https://fluxrunai.com/blog/kotlin-multiplatform-running-app?ref=commonmain.dev)  
  
I build [Flux Run](https://fluxrunai.com/?ref=commonmain.dev), an AI running coach for iPhone and Android, as a solo developer. The app itself is written once in Kotlin Multiplatform: run recording, pace and split maths, reminders, and the Compose Multiplatform UI. The AI coaching is not in the app: it runs on a separate backend service, and the app talks to it and shows what it returns. Around that sits a small amount of native code where the platform really matters. Here is where the line fell, and the two things that bit me.

### LazyColumn

Compose Multiplatform tips, tricks, and code snippets.

[compose-lab](https://github.com/DimiVlachos/compose-lab?ref=commonmain.dev)  
  
Compose Multiplatform components, rebuilt from scratch and recorded as short clips. One Kotlin codebase, the same pixels on Android and iOS.

### The Dependency Graph

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

- [**Device Hub Pro**](https://github.com/gitemre/device-hub-pro?ref=commonmain.dev)  
Android and iOS devices, side by side on your Mac. Mirror, control, change settings and capture — free and open source.
- [**Compose DND**](https://github.com/MohamedRejeb/compose-dnd?ref=commonmain.dev)  
A library that allows you to easily add drag and drop functionality to your Jetpack Compose or Compose Multiplatform projects.
- [**Spyglass**](https://github.com/zainkhalid91/spyglass?ref=commonmain.dev)  
Spyglass renders your Compose `@Preview` functions to PNG with no IDE, emulator or device, then compares them with a design image and tells you exactly where they differ. It works from the command line, in CI, and as an MCP server, so a coding agent can look at the UI it just wrote, compare it with the mock and fix the gaps on its own.

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

[Flux Run – Your AI running coach, in your pocketFlux Run is an AI running coach app for beginners and improving runners, on iPhone, Apple Watch and Android. It builds a weekly training plan for your goal (first 5K to marathon), talks you through every run, and adapts the plan after each run.![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/icon/favicon-fr-192-b4826f2e-6784-47dc-bef3-e0ad0527ea42.png)SJR LLC![](https://storage.ghost.io/c/57/59/57597180-415a-44ab-aa77-38b4467c31d5/content/images/thumbnail/og-4a26bd86-5bb5-407b-b854-69772923a8b9.png)](https://fluxrunai.com/?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) 

[Senior Staff Engineer - Mobile/Kotlin](https://job-boards.greenhouse.io/fanaticsinc/jobs/4435891009?ref=commonmain.dev) at [Fanatics](https://www.fanaticsinc.com/?ref=commonmain.dev)  
**New York, NY, United States - Remote*  
  
As a Sr. Staff Engineer at Fanatics, you are a recognized technical leader. You operate both strategically and hands-on while leading ambitious projects, and your solutions set the standard for the team. Your bold decisions balance immediate business needs with long-term technical excellence. Through your leadership, you cultivate a culture of excellence and innovation that leaves a lasting impact.

[Junior Mobile Developer](https://jobs.lever.co/eleks/dfd96e6e-1ba1-4560-babb-b5274d292e24?ref=commonmain.dev) at [eleks](https://eleks.com/?ref=commonmain.dev)  
**Lviv, Ukraine - Remote*  
  
The project is a set of software applications, infrastructure, and hardware resale in the domain of Convenience Store Supply and Logistics/Products Wholesale. Our products simplify the workflows of the distribution business and give business flexibility and mobility. iOS solutions are designed for ordering a variety of products. The client's business operates in the United States and Canada.

---

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