#mobile
iOS and Android apps.
2026
Eleven pieces of psychology we design with, and where to see them
Deep diveA field guide to the design psychology behind our apps and sites: the published source for each idea, the screen where we used it, and the dark-pattern version of it we will not ship.
The entitlement arrived. The feature still is not live.
Field notesOn 6 November Apple granted the Tap to Pay entitlement we had asked for since September. Workers still cannot use it, because the build sitting in Apple's separate App Store review would lose its place in the queue if we swapped it now.
We designed for wet gloves and never tested a glove
Deep diveFive design choices in ZooLog+ for keepers working outdoors, the published research behind each, and the glove test we have not run.
Rewriting ZooLog in Swift and Kotlin in a week
Case studyOn 19 October the ZooLog mobile app was 134,442 lines of Dart. On 26 October it was Swift and Kotlin, opening the old app's database and settings where they lay. What it took, and why we have no better reason than a director's call.
An undo button that tells the truth
Field notesA TyreStack fitter now gets 30 seconds to take back a Done tap, but only while undoing it would not falsify the stock or money records. The same audit found our board plotting jobs at invented places.
A thousand synthetic finger drags
Deep diveA bot playing our iOS puzzle game through real touch events caught SwiftUI dropping finger positions whenever a frame ran late, turning a +672 chain into +80. It also caught a Release build that no longer compiled.
Tappy was taken, so we became TipBop
Decision recordWe built our tipping app as Tappy on 21 August 2026. Fifty-eight hours later it was TipBop, because the old name belonged to somebody else. How we screened more than 60 names, and why the code still says tappy.
ZooLog is on Cloudflare from the first commit
Decision recordTwo days in, the keeper app runs on Workers, D1, Queues and R2, with no other backend behind it. That was the easy decision. The hard one is what happens when a keeper logs a feed where the phone has no signal.