Publishing a KMP library commits you to every target you listed
Dropping a target in a minor release breaks consumers at resolution time.
We use Google Analytics to see which pages help people. No ads, no profiles. Privacy Policy
41 posts
Dropping a target in a minor release breaks consumers at resolution time.
Source compatibility and binary compatibility are different guarantees, and a default argument preserves only the first.
Copy-pasted build config drifts silently per module. A convention plugin makes the shared part shared.
The native test binary runs on a device, so a missing simulator reads like a toolchain problem.
Decode, cache and memory pressure are platform concerns, and the composable that hides them decides your scroll performance.
Flags that differ per platform at the same moment produce bug reports nobody can reproduce.
Gradle metadata decides which variant each target gets. A library with no native artifact fails at link, not at resolution.
Android has a system back gesture with an owner. iOS has a navigation controller. A shared back stack answers to both.
A processor sees one compilation at a time. Generating into commonMain is a race you win by accident.
wasm has no filesystem and iOS has a sandbox with policy. An interface forces you to name what you need.
Each platform has a vetted crypto provider. A pure-Kotlin implementation has none of their review.
Swift sees NSError with a wrapped message, so a typed catch becomes a string match.