Swing Check
Golf swing analysis measured on the phone, not in the cloud
Availability
Swing Check measures a golf swing from a video taken on an iPhone. It finds the four moments that matter — address, top of the backswing, impact, and finish — times the tempo between them, and measures how the head, hips and shoulders moved through the swing.
The analysis runs on the device. Video never leaves the phone, and neither does the pose data derived from it.
The constraint that shaped it
A phone camera can see a golfer’s body. It cannot reliably see a clubhead, a shaft, a swing plane, or where the ball went — and it certainly cannot say anything about injury risk. So the app never claims to.
That restraint is enforced rather than remembered: a tool in the repo checks the coaching text, and the store listing, against a forbidden-word list. Copy that overclaims fails the check. It is much easier to keep a promise when something other than good intentions is holding you to it.
How it is put together
Roughly a hundred Swift files, split so that each piece can be reasoned about on its own — capture, phase detection, pose analysis, report rendering, and the account and membership layers, which know nothing about swings at all.
Accounts and profiles live in Supabase; Apple handles payments and RevenueCat verifies membership. What stays on the phone is everything the app actually looks at: the videos, the pose data, and the reports built from them.