The Dark Corners of Kotlin Multiplatform

Kotlin Multiplatform is powerful, flexible, and full of promise — but it’s not all smooth sailing. Behind the glossy headlines and official documentation lie subtle bugs, platform quirks, and surprising limitations that can trip up even experienced developers.
In this talk, we’ll take an honest look at the dark corners of KMP based on real-world production usage — not tutorials, not demos, not happy paths. You’ll see concrete examples of things that break, don’t work as expected, or require workarounds you’re not entirely proud of.
We’ll cover:

– Swift/Objective-C interop: generics erasure, missing default parameters, and why your beautiful sealed classes become something… else on the other side.

– Error handling across the boundary: when KotlinException wrapped in an NSError is the best you get.

– Build times and Xcode tooling: why your iOS colleagues still look at you funny.

– UI testing on iOS with Compose: spoiler — XCTest can’t see you.

– The workarounds that work: SKIE, KMP-NativeCoroutines, and other tools the community built because the official solution wasn’t there yet.

Some of these problems have partial solutions. Some have ugly workarounds. Some are just things you need to know before they bite you in production.
This is not a “KMP is bad” talk. It’s a “here’s what to expect when you go beyond the tutorial” talk — for anyone already using KMP or seriously considering it for production. Eyes open.

Share

Session info:

Speaker: Andrea Della Porta

Mobile Manager at Capgemini

Date: 13 March 2026

Time: 12:00 - 12:30

Relevant tags:
Best practices Kmp

See all speakers

See all videos