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
41 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.
Each collector re-runs the producer. Two UI observers plus a test is three executions.
Five targets, five sinks, and one of them discards your output silently.
Virtual time makes a 30-second timeout instant — and makes a real-dispatcher leak invisible.
The default hierarchy creates intermediate source sets you never declared.
Conflation turns two identical emissions into one, so a repeated event vanishes.
Structured concurrency propagates failure upward by design. SupervisorJob is how you declare independence.
One test, five executions. That is how you find platform bugs — and how one flaky test fails five jobs.