'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

I'd tried this conversion process before, perhaps a year ago, with the agent feature in ChatGPT (the one that boots up a cloud VM to perform a task) and got nowhere. There has clearly been a lot of progress made here in a short amount of time, no doubt spurred on by what Anthropic has been doing with Claude. It's hard to believe Xcode has been retooled to support both so fast

Since people have been asking, the initial iOS -> Android porting prompt used here was:

"Hi codex. So this here samegame folder is an iOS project written in Swift. I would really like to convert it 1:1 to Android using the latest APIs, such that I can point Android Studio at this project folder and build and run it. Is this something you can do? I want it to look and feel exactly the same as the iOS app"

It then asked me how it wanted it built, and I said Java/XML.

That got me 80% of the way

(I think people think I have some magic LLM juice I sprinkle into my prompts 😅 I do not. I chat with it like I would someone on iMessage)

I didn't think to check it yesterday, but apparently my SameGame Android port happily runs on Android back to 5.0 Lollipop from 2014 👀

I was expecting to simply throw away this project, now I don't really know what to do with it.

If I had had this superpower 10+ years ago, every single one of my apps would have been on Android and Windows Phone

This seemed so hard to believe that I dug my own Nexus 4 out of storage (running Android 5.1) and tried it myself. Works just fine!
I spent some time cleaning up the project and prepping it for Google Play, testing the gameplay and leveling. It maintained the various language localizations too, which was a nice bonus. I'm too lazy to fill out the app icon / screenshot metadata just yet, but I've tested Google Play distribution internally at least. I'm still reeling from the fact that this is possible, never mind viable
The Google Play publishing console is just wizards all the way down. It's such a mess to navigate
Google Play submission review takes as long as Apple's App Review now. They really have locked down so much of Android over the past decade — it's all much closer to Apple's walled garden

@stroughtonsmith In my experience Google is more strict than Apple in many ways. Google will sometimes do a review of an app out of the blue and possibly “reject” it and give you quite short deadline to fix it.

I am talking about a full review of an existing app, without a new version upload and no activity for months.