Michael J Petrie

Shipping an iOS app in a week

Notes from building Ultimate Kami almost entirely by voice, on a phone, with a newborn asleep on my chest.

This is a placeholder post, here only to show how the site behaves with more writing in it. It will be removed. The rest of the text is filler, written to look like a real post so the layout has something realistic to hold.

Real-time audio has one rule above all the others: the callback must finish on time, every time. Miss the deadline and the listener hears it immediately, as a click or a dropout. That rule shapes everything else, from how memory is allocated to how threads talk to each other.

What worked

  • keeping every task small enough to review in a minute
  • one branch, one worktree, one agent
  • testing on a real device the same day
  • writing down what the app is not going to do

What didn’t

Graphics has a softer deadline but a wider surface. A frame that arrives late is a stutter rather than a click, but there are far more ways to be late: too many draw calls, too much overdraw, a texture upload at the wrong moment, or a shader that is quietly doing far more work than it needs to.

  1. Long, vague prompts.
  2. Letting two agents edit the same file.
  3. Skipping the boring parts of the App Store listing.

The interesting part is always the same. You start with a clean idea, you meet the hardware, and the idea changes shape. What survives is usually simpler than what you started with, and faster for it.