'Codex in Xcode can probably take an entire ObjC project and convert it to Swift on its own'

Alright, bet.

I handed it the classic SameGame codebase, gave it my coding style markdown file, and said "So this is an old ObjC app for iOS. I would like you to completely convert it 1:1 to modern Swift, with the coding style in mind. Leave no ObjC behind"

No other prompts needed; I needed to update a few legacy things in the xcode project settings (min OS version, Swift version, etc), and got this:

All automatic, not a line of ObjC remains. Deprecated APIs were all modernized. 5,400 lines of ObjC became 2900 lines of Swift 5
I had long since rewritten the app myself in Swift, so this was only a contrived test of Xcode's new agentic programming support. But it did in 5 mins what took me months (years?) of on-again/off-again effort and preparation
Nonetheless, if this is what you're up against, you have /absolutely no shot/ of convincing a brand new Xcode developer that they should spend weeks doing something the hard way ('because that's how I did it!') when the IDE will do it for you in the background before you've finished your coffee. This feels much more like the shift from assembly code, even punch cards, to programming languages. If you've kept within the Apple bubble up to now, this stuff is going to be a massive shock
Your only reprieve is that this stuff is so expensive right now. Codex at $20/mo is fine for tinkering, but you'd be forced into the $200/mo plan if you used this every day. Claude, which I've never used, also sounds way too expensive for my taste. If (and when) LLM-based agentic programming like this becomes free, gameover

ObjC to Swift is too easy, all things considered. What about porting the app to another platform, like… Android?

Hold my beer

So yeah now I have a 1:1 recreation of classic SameGame in Android's Java/XML 😑

I passed it the Swift version of the project (*that it had created from the original ObjC project*), and instructed it to turn it into an Android project that I could just open in Android Studio and install. Did the lot, made the build config, transcoded the audio to .ogg, and now it just… *exists* on Android.

It preserved my animations, my layout, my navigation, everything. It did require guidance for last mile

It even supports splitscreen 🤣

RIP cross-platform frameworks.

Remember how much effort Microsoft put into acquiring WinObjC and trying to build an SDK with it and convincing developers to use it, and how nobody did?

You could do that.

Or you could ask Claude/Codex to just port an app for you in 15 minutes

@stroughtonsmith Nice writeup! I'm curious about code quality. I've been using Claude and it seems to make dumb decisions. They… work… but are suboptimal and often inefficient. (Like introducing unecessary state.) I'm curious if this generated code "good" code or “it works so who cares" code?
@gregatron5 this is one of my oldest projects, dating back to 2008. I wouldn't consider the original code 'good' by any means, so maybe that's an unreasonable comparison. I can't speak for the Android code, but the Swift code I've had it writing has all been very similar to my own

@stroughtonsmith @gregatron5

It seems to be far better at “translating” tasks, like moving from one language or platform to another.

In these tasks it doesn’t have to make so many architectural decisions because you made them already.

@dandylyons @gregatron5 I had it build three new apps yesterday?