When a local model beats the API, and the three numbers that decide it
The crossover is computable, the three numbers disagree with each other, and almost nobody computes any of them.
We use Google Analytics to see which pages help people. No ads, no profiles. Privacy Policy
Written from the work itself, not from a tutorial outline. The technical posts start where something broke and end with the evidence it was fixed; the rest start wherever the thought did.
The crossover is computable, the three numbers disagree with each other, and almost nobody computes any of them.
Scope failures are discovered late and paid for by the engineer. These are the questions that surface them early.
Advice built for shallow task-switching inverts when the task takes forty minutes to hold in your head.
What you leave out of a context pack is a design decision, not waste.
A hundred days of Jetpack Compose, written by following the official documentation end to end. The APIs are many and the ideas are few; here are the eight that kept recurring, and an honest account of what the exercise missed.
Glance lets you write widgets in Compose-like Kotlin, but it emits RemoteViews rather than drawing. Knowing that explains the missing modifiers, the absent animations, and why state works the way it does.
A notification is rendered by the system UI, not your app, so Compose plays no part in its appearance. What a Compose app owns is the permission flow, the deep link, and the back stack the user lands in.
Predictive back shows a preview of the destination during the gesture. Supporting it means responding to progress rather than to a completed press, and the old BackHandler cannot express that.
Compose exposes system insets as composable values with padding, size and consume modifiers. Knowing the three safe-inset groups and how the keyboard inset animates resolves most edge-to-edge layout problems.
Targeting Android 15 makes edge-to-edge mandatory — the opt-out is gone. What that changes, what breaks, and why the fix is mostly about who consumes the insets.
Compose ships lint rules for the modifier convention, remember misuse, unstable collections and more. Adding your own is how a design-system convention becomes a build failure instead of a code-review comment.
Layout Inspector renders the composition as an inspectable tree with per-composable recomposition and skip counts. Knowing what it can and cannot tell you is the difference between a diagnosis and a guess.