A gym app made for one person, and its 8-bit sequel
I was starting at the gym and wanted a plan built from my own gym's machines and the research evidence. With Claude Code I built an iPhone app that runs that plan, then a pixel-art sequel where you walk around your own gym to log workouts.
Updated31 Jul 2026
The problem
I was starting a gym routine as a beginner. I wanted a program built from the machines my gym actually has and from the research on training, plus a way to adjust the plan each week from what I really did.
What I built
Gym Trainer is an iPhone app for one person, installed from Xcode instead of the App Store. Its splash screen says "Dale!", Colombian Spanish for "go for it". It shows today's workout from an 8-week plan that mixes gym days, active rest and stretching, so no day is empty. After each session it asks for effort on a 1 to 10 scale (RPE), any pain by body part and severity, and notes. Each exercise shows a GIF or photos, the load used last time and a coloured dot for the strength of its evidence.
The planning lives outside the app, in a Claude Code skill. I called it "skill as brain, app as body": the app shows the plan and records what happened, and once a week the skill reads the app's session log, checks attendance, pain and effort, and writes the next week's plan. Shared JSON files are the contract between the two.
Equipment
- Claude Code Harnesses and agents
- Claude (Opus 4.6 to 5.5, Fable 5 and 5.1) AI models
- Codex CLI Harnesses and agents
- GPT (GPT-5.5 to GPT-6.1 in Codex) AI models
- ChatGPT (ChatGPT Pro and Deep Research) Apps and services
- SwiftUI and SwiftData Code and infrastructure
- SpriteKit Code and infrastructure
- Xcode and the iOS Simulator Code and infrastructure
- Free Exercise DB Data sources
- ExerciseDB Data sources
- GB Studio Community Assets Design and media
- Modern Interiors Design and media
- Magnific Design and media
- Python and uv Code and infrastructure
How I built it
- Photographed the gym's equipment (24 photos) and turned the photos into an equipment list.
- Filtered 1,873 exercises from two open databases (873 in Free Exercise DB and 1,000 in ExerciseDB) down to 30 strength, 7 cardio and 22 stretching exercises that fit the equipment, the safety rules and the evidence.
- Grounded the program in the CardioRACE trial (Lee et al., 2024: a one-year randomized trial with 406 people that names 12 resistance machines and 3 aerobic options) and 35 other reviewed papers, with a synthesis of guiding principles from ChatGPT Pro. The skill ranks safety first and adherence second, and never claims more for an exercise than the evidence shows.
- Built the app in SwiftUI and SwiftData over two days, in 75 commits. Claude wrote the features and plans; Codex reviewed, hardened and refactored the code.
- Tested it on the real iPhone and fixed the 10 issues that first round turned up.
The 8-bit sequel
8-Bit Gym turns logging into a game. You build your own pixel-art gym on a 10 by 14 tile grid, walk a character to a machine, tap it and log sets, reps and load, or cardio time, and earn XP, levels and badges. A coach greets you by name and gives tips about the game, never exercise instruction. The game design rules out anything that punishes or pressures: no streak guilt, no XP decay, no leaderboards, no calorie counting or body-weight tracking, no random rewards. Levels reward you with decorations and music, never with features.
It is built in SwiftUI, SpriteKit and SwiftData with a 4-shade grayscale palette. Every shipped asset has a provenance record. The characters are MIT-licensed community sprites, recoloured to the palette. Some machines are redrawn from a licensed asset pack and the rest were drawn from scratch. Music and sound effects were synthesized in Python with no samples. The wordmark was generated in Magnific with Recraft V4.1 and chosen from 8 candidates. From 2026-07-28, Codex (GPT-5.6 Sol) reviewed each pull request until it approved.
All seven build phases were merged by 2026-07-31. The app runs in the iOS Simulator; installing it on my iPhone is the next step.
Results
Gym Trainer took 75 commits between 2026-04-02 and 2026-04-03, and ran on my iPhone after the first device test. Its program has 8 weekly plan files in two phases: "Learn Form" in weeks 1 to 4 and "Build Volume" in weeks 5 to 8.
8-Bit Gym took 125 commits and 27 pull requests, and has 167 test methods. The pull request that brought the gym members to life needed 11 review rounds before approval.
What I learned
Test on the real device early. The first round on the iPhone found 10 issues in an app that already ran in the simulator.
AI-generated characters were the wrong fit for the sequel. None of the seven sprite experiments shipped, and I rejected AI character portraits as well: no idealized fitness bodies, because the silly pixel people are the brand.
A reviewer from a second model, run until it approves, finds real bugs. The 11 rounds on the gym members caught characters who could get boxed in and animations that leaked memory.
Lab notes
-
I made the gym feel lived in: decorations earned as level rewards, boxing, yoga and dance stations, a jukebox of synthesized music and gym members who wander between the machines.
-
8-Bit Gym got its world: the gym builder, a SpriteKit scene with tap-to-move, the coach and the first licensed sprites, followed by stats and history, XP, levels, badges, challenges, chiptune sound effects and the app icon.
-
I finished planning an 8-bit sequel (technical plan, game design and design system) and tried seven AI-generated character sprites. None of them shipped.
-
I built the first version of Gym Trainer with an evidence-based 8-week program, turned the plan into a 4-day upper and lower body split, and fixed 10 issues from the first test on the real iPhone.