Of the 3 models I tried, Grok did the best at making an iOS app I wanted for personal use (a bike computer with specific qualities). (Claude just gave up and did an HTML/CSS implementation but I insisted on native SwiftUI+Metal.) Grok definitely fumbles sometimes, but I have been surprised what it CAN intuit versus me having to micromanage it.
(I am not an iOS developer, so getting something specific that I needed in a few hours/days was really helpful instead of spending months/years learning the language, APIs, etc.)
(I am absolutely not "vibe-coding" Caddy btw, just tinkering with it for personal projects.)
> Claude just gave up and did an HTML/CSS implementation but I insisted on native SwiftUI+Metal.
That sounds very odd and very contrary to my experience. You don’t say which model you actually used, but I never had opus 4.8 (or sonnet for that matter) ignore which language/stack i wanted to use.
I stopped updating CLAUDE.md because I felt like Claude always ignored it. But over time I noticed there is still times (especially during planning and review) where it's good to maintain the official document as a reference. As opposed to memory.md or manual edits.
I do a lot of native iOS development using Opus 4.8 (and I used 4.7/4.6 before this). I have a very hard time with this comment, were you using Opus or something else?
Same. A few months ago I pointed Opus 4.6 at a mid-size Vue app and told it to create the iOS equivalent using SwiftUI, and it nailed it. I broke the process down to phases and reviewed each phase, but within about ten days I had a functioning iOS app that had full feature parity.
I've done the same with DS-V4-Pro, GLM-5.2, MiMo-2.5-Pro, etc. - this is a task pretty much any agentic model can handle nowadays.
(I do the reverse currently where I implement a macOS front end natively, and then just let the agent rip on porting that to an HTTP API server + React/TypeScript/HTML/CSS frontend, because it's significantly easier to have agent loops fiddle with making macOS apps than it is to fiddle with a web browser and CSS.)
Yeah, I think this seems more true than "X is better at iOS than Y", the way you prompt seems a lot more important, and some models react differently to the same prompts.
I swear I have read either this exact or a very similar comment before. Same gist about a bike computer iOS app, and one of the models giving up.
As an aside, big thanks for Caddy! Really helped me get my greenfield project off the ground and it simply “just working” out of the box was one less source of errors I had to worry about when onboarding my team.
I tried Claude Code with XCode once, I already use CC exclusively, either in the CLI or with Zed (mostly CLI now), and it was pretty unstable. I wish Apple would QA their products more. It seems to me the best way to use Claude Code for anything is stand-alone.
if you ask me, there should be an absolute emergency meeting at apple around software quality... its been on a downward slide for almost a decade and its starting to have real impacts.
I am very curious what your Claude thread looks like. I have never had Claude swap languages, in fact my experience is the opposite, sometimes it holds on too much when working on a large code base.
As someone also not happy with my bike computer (some truly horrific UI/UX decisions), could you share or explain what you made? I like your web server.
I wanted a phone app rather than yet another electronic device. Phones do not have great screens in bright sunlight, and they run hot, so it's not ideal for a bike computer in the first place. But I can't deny the convenience of the multipurpose tool that is my phone.
This app will have a few UI/UX modes. The default is the futuristic-looking HUD, but it has a low-power mode that's mostly monochrome on black, and an even lower-power "Cruise mode" that removes the map entirely and just shows you speed, approximate heading, and nav directions. Still very WIP and mostly for my own amusement!
(I am not an iOS developer, so getting something specific that I needed in a few hours/days was really helpful instead of spending months/years learning the language, APIs, etc.) (I am absolutely not "vibe-coding" Caddy btw, just tinkering with it for personal projects.)