There is no UUID in the Kotlin standard library, and the fixes differ per platform
Random is seeded differently per target and is not secure anywhere. An id generator is a security decision.
We use Google Analytics to see which pages help people. No ads, no profiles. Privacy Policy
103 posts
Random is seeded differently per target and is not secure anywhere. An id generator is a security decision.
The annotation lives in an Android artifact, so commonMain cannot use it — and that shapes how you write composables.
It builds in seconds, runs real Compose, and needs no device.
Declared versions are requests, not guarantees. Resolution picks the highest.
androidx.lifecycle.ViewModel is Android's. The shared class needs an explicit clear() and two platforms that call it.
A window holds a composition, a scope and native handles. Nothing releases them for you.
Dynamic proxies need a JVM. What replaces them asserts on outcomes instead of calls.
A single-threaded target surfaces every real-clock dependency a JVM run hides.
Metadata, klibs and platform artifacts resolve through different Gradle variants.
A layering rule nobody can violate is a dependency declaration, not a document.
Exhaustiveness is why you used a sealed type, and it is exactly what does not cross.
Four channels, four halt latencies, and only one of them is under your hand.