Welcome to KMP Bits
RSS FeedYour go-to spot for Kotlin Multiplatform tips, mobile dev insights, and clean architecture.
Featured
-
KMP Splash: How I Stopped Opening Xcode for Splash Screens
The pit crew was always there. I just had to build it: a Gradle plugin that automates iOS and Android splash screen setup from a single config block.
-
Drop the Clutch: Three Metro DI Patterns Every KMP Developer Should Know
Metro drops the clutch on runtime DI errors. Three patterns in a real KMP app: binding contributions, platform graphs, and child scopes.
-
Clean Lap: UI Testing in Compose Multiplatform
Before the car hits the grid, telemetry confirms every sector. Before your UI ships, runComposeUiTest confirms every composable.
-
Under the Hood: How Compose and SwiftUI Handle What Happens Off-Screen
Same engine, different cockpit: how Compose and SwiftUI handle side effects when sharing a Kotlin Multiplatform ViewModel.
Recent Bits
-
The Same System: Advanced expect/actual in KMP
expect/actual is easy until you leave the trivial expect fun behind. Here's what bites with expect classes, constructors, actual typealiases, and the compiler rules nobody warns you about.
-
Safety Car: Coroutine Exception Handling in KMP
An uncaught coroutine exception crashes your KMP app on both platforms, and the platform safety nets don't extend to iOS. Here's how I build crash boundaries in commonMain.
-
Warm Tyres: Image Loading and Caching in Compose Multiplatform with Coil 3
Tyre warmers keep rubber at temperature so the car has grip the instant it leaves the box. Coil 3's memory and disk cache do the same for images — and the same code now runs on Android and iOS from commonMain.
-
Through the Lens: Barcode Scanning in Compose Multiplatform
expect/actual isn't just for business logic. Here's how to build a shared barcode scanner Composable that reads through any platform's lens.