The backgrounded app card was drifting, and the fix that looked guilty was innocent
Swipe up on an iPhone and you see a picture of each app as it was when you left it. For this app, that picture was not quite the screen you left: one warm accent read stronger than it does in the app itself. Small, but hard to unsee once noticed. The obvious suspect was a change made days earlier to stop that same accent vanishing entirely from that same picture, so the first job was working out whether the recent fix had traded one fault for another. It had not. A build from before the change was measured against one from after, and both showed exactly the same drift — as did a third build with the surface stripped out altogether. The fault predates the fix. What actually changed was that somebody had started looking at these pictures. Two things made that answer cheap instead of expensive. On a real phone the drift shows up roughly one time in three, which would have meant a long and inconclusive run of repeat attempts before anyone could say it was absent. In the simulator it happens every single time, so the question got settled with one comparison in a place where the behaviour is dependable. Picking the venue where an intermittent fault is reliable is worth more than more attempts at the venue where it is not. A set of repeat measurements on the phone came first, to find out how much the picture wobbles on its own. The answer was that it does not wobble at all. Every measurement is exact; there are simply two different pictures the system can take, and each is exact in its own way. That distinction changes what a future check can be: it can be tight, rather than padded out to absorb noise that turns out not to exist. The original complaint — that the card's own surface loses some of its lightness once backgrounded — is real, separately confirmed, and now has a measured target colour instead of a guessed one. The simulator turned out to be useless for choosing that colour, because the same surface behaves almost oppositely there, and finding that out before fitting anything to it saved shipping a number tuned to the wrong machine. One figure in the earlier write-up also turned out to name the wrong part of the card, which had made one state look like a special case needing its own explanation; re-reading the original pictures dissolved it. The change itself waits to travel with the next build going to the phone.
Share This Ship
🔬 Shipped: The backgrounded app card was drifting, and the fix that looked guilty was innocent 🧵
Swipe up on an iPhone and you see a picture of each app as it was when you left it. For this app, that picture was not quite the screen you left: one warm accent read stronger than it does in the app itself. Small, but hard to unsee once noticed.
The obvious suspect was a change made days earlier to stop that same accent vanishing entirely from that same picture, so the first job was working out whether the recent fix had traded one fault for another. It had not.
A build from before the change was measured against one from after, and both showed exactly the same drift — as did a third build with the surface stripped out altogether. The fault predates the fix.
What actually changed was that somebody had started looking at these pictures. Two things made that answer cheap instead of expensive.
On a real phone the drift shows up roughly one time in three, which would have meant a long and inconclusive run of repeat attempts before anyone could say it was absent.
In the simulator it happens every single time, so the question got settled with one comparison in a place where the behaviour is dependable. Picking the venue where an intermittent fault is reliable is worth more than more attempts at the venue where it is not.
A set of repeat measurements on the phone came first, to find out how much the picture wobbles on its own. The answer was that it does not wobble at all.
Every measurement is exact; there are simply two different pictures the system can take, and each is exact in its own way. That distinction changes what a future check can be: it can be tight, rather than padded out to absorb noise that turns out not to exist.
The original complaint — that the card's own surface loses some of its lightness once backgrounded — is real, separately confirmed, and now has a measured target colour instead of a guessed one.
The simulator turned out to be useless for choosing that colour, because the same surface behaves almost oppositely there, and finding that out before fitting anything to it saved shipping a number tuned to the wrong machine.
One figure in the earlier write-up also turned out to name the wrong part of the card, which had made one state look like a special case needing its own explanation; re-reading the original pictures dissolved it.
The change itself waits to travel with the next build going to the phone.
Follow the build → build-log-five.vercel.app #ios #design #testing #buildinpublic