Discovery First
Years of consulting taught me the value of the discovery process I ran for Lotus clients, so I ran it on Bobara before I wrote a line of code. I checked that the market wasn't saturated and that there was real demand. I worked out who the audience was and tied that to the keywords people search for. I planned the marketing too: partnering with local boba tea shops, working with small creators on social media, and a budget for ads.
Then I prototyped the parts that were new to me, quickly, without building a whole app: CloudKit, which I hadn't used before, and a highly graphical, sprite-based 2D interface, including a comparison of SwiftUI and SpriteKit for drawing it. I kept going until every decision was captured in a plan, an architecture plan and a marketing strategy.
I did that prototyping with Claude Code, which let me try an idea or an interaction on its own, without building a whole app around it, and see it working before it went into the plan.
That made the build itself easier, and left my time for the exciting details: the graphic style and the art, and a library of sounds.
The comparison came down on SwiftUI. What the onsen needed was sprite-sheet swaps and gentle idle motion, which doesn’t call for a game engine, and starting in SpriteKit would have added weight for no benefit, while SwiftUI was the only way onto Apple Watch and one of the things I’d set out to learn properly. The whole scene is rebuilt about twenty times a second inside SwiftUI, and everything in it that moves works out where it should be from the time that has passed.