Fixed numbers
A bug report in one sentence, a plausible theory, an experiment — and the theory was wrong. It was the most useful hour of the week, and it ended at a bug that has been shipping for a version.
The report
“Affects all L sizes. XL and M are fine.” In the widget gallery on iOS 27, every large widget had its top edge cut off; on “Tasks” the “+” in the corner was missing.
The theory
That same day exactly three widgets had gained a new size: the page-filling one iOS 27 brings. And exactly those three were the large ones. The theory suggested itself — offer a widget in two sizes and the system lays out the smaller one for the larger.
Plausible. And wrong.
The experiment
Instead of believing the theory, it got a control in a single build: three widgets lost the new size again, the fourth — the new project board — kept it. If the theory holds, the three are fine and the fourth is broken.
The result was the opposite. The healthy one was precisely the one that had kept the new size. And a medium widget was broken too — one that never had that size at all.
The cause
The broken widgets never measured how much room they had. They used fixed row counts: seven here, nine there, four in the medium one. Numbers that had been tried on a device once and had been right ever since.
On iOS 27 they are not. And when content grows taller than its frame, SwiftUI does not clip the bottom — it centres it. That is why the “+” was missing at the top and the footer at the bottom, at the same time. A widget showing too much looks like one with too little room.
The counter-check then lined up without exception: every widget that measures its height was fine. Every one with a fixed number was clipped.
The uncomfortable part
The same damage had already happened two weeks earlier, on a different widget. That one was switched to measuring — and the others were deliberately left alone, on the grounds that the gain would be zero. The gain was not zero. It just wasn’t due yet.
And because looking finds things
While checking the Dynamic Island, the focus timer on the Lock Screen
caught the eye: instead of 19:23 it showed 19:
and a dash on the next line. The frame was eight per cent too narrow —
measured, not estimated.
That has been in the App Store since version 1.4, and nobody ever noticed: “4:59” is four characters and fits comfortably. Five characters only occur in the 25-minute session, and there only for the first fifteen minutes. The five-minute session never triggers it — and that is the one you pick when trying things out.
What remains
An experiment that disproves your own theory is worth more than one that confirms it. And a number that was right once is not a measurement — it is a memory of a device that no longer exists in that shape.