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.
It never happened to me, but Claude routinely ignores the single line I have in CLAUDE.md, so I wouldn't be entirely surprised.
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.
Yeah, that makes no sense. I've never seen any model "just give up" and change to a wholly different stack on its own.
I've seen Opus do this pretty frequently, actually. It's one of the reasons I don't trust it as a model.
I've had opus 4.8 write python code in a bash script, to get around my "write a bash script" requirement.
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.)
That's awesome! Did you follow any sort of framework in your phasing? We to migrate our entire app so any tips would be helpful.
UI: SwiftUI (primary), UIKit (limited), PhotosUI, WebKit, MapKit, Charts
Data/Concurrency: Foundation, Combine, Observation (@Observable)
Platform: CoreLocation, UniformTypeIdentifiers
Tests: Testing (Swift Testing)
Let’s face it, there is no best model for something because the input is natural language.
Some models may fit better some users‘ way of prompting.
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.
It's almost like there is no replacement for human expertise when we need to make usable products for other humans.
I agree. There’s no chance Grok is better than Claude Code for this. And Claude is never so badly misaligned that it gives up and switches stacks.
Given how many users there are, I can easily believe it happened to at least one person who would then repeat it as an anecdote.
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.
+1 for Caddy absolutely goated software. Everytime I need it, it saves me hours and hours.
Wonderful, glad it was helpful for you!
Was this in Claude Code for Claude? Did you use a weaker model like Haiku? Claude should absolutely not be as bad as you said.
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 tried the newer iOS Beta and it was driving me nuts, last update fixed it mostly, but this is the last time I ever use Beta anything from Apple.
I guess I'll be skipping two major releases of iOS (etc.) then, not just iOS 26.
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.
Thank you! I'm glad you like it.
Sure. I'm not sure if I will actually publish this thing, but I can show you: https://x.com/mholt6/status/2074986102428139754
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!
There's no way this is true.