Write it in commonMain until the compiler stops you
Starting in a platform source set means shared code never gets written. Default to commonMain and let the compiler decide what genuinely cannot live there.
We use Google Analytics to see which pages help people. No ads, no profiles. Privacy Policy
Compose, Kotlin, and multiplatform work — the mechanism under the symptom.
296 posts
Starting in a platform source set means shared code never gets written. Default to commonMain and let the compiler decide what genuinely cannot live there.
Calling it a configuration cache incompatibility frames a real defect as a missing feature. The task captures a live object where it should capture a value.
The compiler verifies an expect declaration's shape on every platform and nothing verifies its meaning. The narrowest declaration is the only promise you can keep.
Thirty-six fork modules were declared in a template-owned file that syncs by overwrite. The seam built for exactly this was present, documented and empty.
Killing a build daemon discards the configuration cache, build cache, file watching and JIT state at once. Forty seconds becomes half an hour.
Scaffold arranges the app shell and hands back the insets its own bars consume. Ignoring that PaddingValues is the single most common Compose layout bug, and edge-to-edge makes it worse.
A cache and the writes against it drift apart in five distinct ways. Each ships separately, each looks reasonable, and all five look identical to a user.
A cold open and a deliberate refresh want different things from a cache. One read method forces the repository to guess what only the call site knows.
A generator wrote a feature into a template demo module sharing the real one's name. Resolve the target from disk and halt on ambiguity rather than picking.
Android 16 makes external displays a mainstream concern. The layout work is mostly window size classes you already have; the new parts are density, input capability and deciding what belongs on which screen.
Reinstalling over a running app can leave the old composition on screen. A screenshot taken without a force-stop cannot say which build drew it.
Foldables give two things a resize doesn't: a posture and a hinge with real coordinates. Handling them well means avoiding the seam and using tabletop mode, not just supporting a new width.