I recently tried vibe coding a couple apps in an environment I’m completely unfamiliar with, Xcode and Swift. Pre-AI, any time I tried, I quickly hit the learning curve and quit, as it seemed to make more sense to invest that kind of effort into skills that are useful at my day job.
The AI allowed me to sail right past the learning curve, building an app I’ve wanted for years in just a few hours. I haven’t really looked at the code at all. With that said, I feel I’ve already started to hit the wall. The app works, it’s fine… but it’s got weird behaviors the AI doesn’t seem to be able to fix. The animation at the end of the drag and drop is wrong and confusing.. it’s telling me that’s the default animation with no options to change or disable it… I exhausted my AI quota twice on this before giving up. Drag-and-drop feels clunky in general, after quite a bit of prompting to tweak it. I still seemingly have to know how an app should behave and tell it to add all the little quality of life things everyone expects to “just work” on macOS… the AI didn’t assume and add any of it. 25 years as a user on macOS and 20 years in tech is how I see the issues and know what is missing and what to ask for.
If I want the app to actually feel great to use, and be the level of quality I’d expect from others, I can’t keep promoting my way there. It made an MVP, but I feel like that’s as far as it goes. I need to read the human interface guide, learn the frameworks, learn Swift, learn SwiftUI, probably learn some AppKit… if you rely on the AI entirely, your app will only be as good as what the AI can do. Right now, that doesn’t what it can do is an MVP that makes for an impressive tech demo or a personal utility, where you’re ok dealing with the limitations and rough edges.
I did write up my initial request, and tweaked from there. Maybe if I started with a markdown file, describing the full specs, every expected drag and drop action, etc… it would be better. But I keep thinking back to Dave Plumber saying his spec for TMOG was 107 pages long. If I’m writing 107 pages of spec, I might as well just code the app at that point, and learn something along the way.