Skip to content
Jason Peterson Jason Peterson
Go back

The Code Was the Easy Part: Shipping a Real iOS App in Evenings

fizz·gram in action: pick a photo, write a note, send a real postcard.

FizzGram is live. Pick a photo, write a note, a real 4×6 postcard gets mailed. Built in evenings. First iOS app I’ve shipped. Apple approved it in under 24 hours. (fizzgram.com)

Claude is the loop. iOS apps are more achievable than ever. Humans in the loop still have to navigate more App Store bureaucracy than they’d like.

The Loop

Claude Code in a side terminal. My iPhone tethered to the Mac. The simulator beside it.

I describe what a screen should do. Claude writes SwiftUI. Build runs. Claude reads the output — compiler messages, simulator pixels, device behavior, log streams, UI test results — and iterates.

iOS apps are very verifiable and testable. The agent exploits that to iterate to good code. It also does a pretty good job sticking to MVVM and services.


The Bureaucracy

Code was maybe half the time. The other half is paperwork.

Claude does fine on the text. Privacy policy, terms of service, EULA, App Store data declarations — all drafted from a description of what your code actually does.

What it can’t do is navigate the App Store Connect web app. Connect is clunky — you can see years of legacy in it. Screenshots at exact pixel sizes, description, keywords, age rating, encryption export compliance, content rights — all clicked through manually. Maybe the Claude browser extension would help here; I didn’t try.

You’ll also probably need a marketing site to host the privacy and support URLs Apple requires. fizzgram.com is Astro on Vercel, mostly to hold those legal pages.

And then: Lob account, Stripe account verification, Apple Developer Program enrollment. Each one a different web form.


The Stack


If you’d like to try it: fizzgram.com.



Next Post
Universal Memory Is Working