The index I added made the query slower, and the planner was right
Low selectivity plus random access beats a sequential scan only sometimes.
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.
229 posts
Low selectivity plus random access beats a sequential scan only sometimes.
A committed secret is public the moment it is pushed. Deleting the line changes nothing.
Compose performance work reduces to knowing which of composition, layout and draw is being invalidated, and why. The diagnostic order matters more than any individual optimisation.
Compose's drag-and-drop moves ClipData between sources and targets, including across apps. Reordering a list is a different problem with a different solution, and conflating them is why reorder implementations get complicated.
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.
animate*AsState holds its value in the composition. A key change starts it over.
A testTag is invisible to a screen reader. A contentDescription is not.
Compose's focus system handles keyboard, D-pad and accessibility navigation. The APIs are small, but modifier order matters, and a form with no focus handling is unusable on any device without a touchscreen.
NestedScrollConnection gives parents four chances to consume scroll deltas around a child. Choosing the wrong one is why collapsing headers collapse late, and why same-axis nesting misbehaves.
Not-yet-loaded, absent, and explicitly-cleared share one representation, and the UI has to guess.
Profiling found the hot function. The hot function was called a thousand times for one reason.