Recomposition is not re-rendering, and that is why your list stutters
Compose re-executes functions whose inputs changed. An unstable parameter means all of them.
We use Google Analytics to see which pages help people. No ads, no profiles. Privacy Policy
138 posts
Compose re-executes functions whose inputs changed. An unstable parameter means all of them.
A custom font covers a subset of Unicode. Everything outside it falls back, and the fallback decides how your app renders emoji, non-Latin scripts and symbols — usually without anyone checking.
Decode, cache and memory pressure are platform concerns, and the composable that hides them decides your scroll performance.
Android has a system back gesture with an owner. iOS has a navigation controller. A shared back stack answers to both.
TextFieldState models text, selection and composition together. Editing through its transaction API preserves undo history and cursor position in ways string replacement cannot, which matters for any non-trivial input.
Text height depends on content, font and scale, which makes uniform list rows harder than they look. Line-break strategies, hyphenation and baseline-relative padding are the tools that solve it without fixed heights.
The annotation lives in an Android artifact, so commonMain cannot use it — and that shapes how you write composables.
Text takes a String or an AnnotatedString. The second lets one composable carry multiple styles, inline content and clickable spans — replacing the Row of Texts that breaks at large font scales.
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.
A Kotlin bump without the matching plugin fails at a position no trace explains.
A qualifier Android resolves may have no equivalent on iOS or the web.