I still don’t know fully what Agentic AI means. I mean, I guess I understand the concept of an agent running in the background doing things for you but I guess the rest of it hasn’t clicked yet.
I was inspired by Steve Troughton-Smith’s series of posts on how he was able to take concept ideas for an app and turn them in to a functional prototype without very much effort at all.1 The results spoke for themselves, and I felt like I was missing out. I had half-baked ideas for apps that I’d never turned my hand to because I hadn’t had the time. Are the scales now tipped in my favour? Can I finally get somewhere with them?
I started out with a blank iOS project in the Xcode beta and a detailed prompt explaining my app idea. I fed ChatGPT’s Codex my prompt (which it agreed was detailed and would take quite a bit of work) and let it have a crack. It came back with a few questions and continued to keep prodding me with questions. That’s good I thought, ensuring it had all the information before it started working is generally a good idea. After a bit of back and forth it proudly declared it had my basic idea done. I hit run and an app vaguely resembling what I had envisioned was on my iPhone’s screen. It definitely had the features I’d asked for (some onboarding screens, placeholder text for enabling an app lock using either a passcode or FaceID) but it was still pretty feature incomplete.2 No matter, I just need to keep prompting it.
I spent a few more hours prodding at it and asking it to make changes; fix this performance issue, you’ve made the buttons overlap, make it look like the Apple app equivalents. It dutifully did things in response to my prompts that were mostly what I was after but never quite there. After my 3 hours I had a semi-functional prototype but lots of things were still placeholders and performance–particularly scrolling and panning–were abysmal (I’d tried every which way I could to get scrolling performance sorted but alas I am not a great prompt engineer it would seem).
I’d had fun but ultimately I thought it wasn’t going to get me where I wanted to be. I went to bed about midnight contemplating what others had done to be able to get Codex to port an entire iOS app to Android.
The next evening I decided to give Claude a go. I definitely don’t have my finger on the pulse of all things AI, but I’d heard enough people gush about Claude that I was keen to give it a try.
I fed it the same prompt I’d given Codex. Again, it thought the project sounded ambitious but had only one clarifying question. Once I’d given it an answer it went off and did a whole bunch of things that after a while I got overwhelmed watching and left it to see what it would come up with.
I was expecting it to come back with a similar app shell with a bunch of placeholder views and text. And I got that; I got more… a lot more.
The app was almost feature complete. The onboarding screens were there, it prompted for the right accesses, it allowed you to configure your passcode or FaceID, and it scrolled like butter. I was amazed that from my prompt it had built basically the app I wanted. Sure, there were rough edges and still work to do, but it was definitely much closer to the experience of going from concept to working prototype in no time at all.
I spent another few hours tinkering with it and asking it to fix performance issues and visual glitches. Some things it did really well, others weren’t so successful and in some instances were a bit baffling.
I’ve heard a few people describe using AI as being similar to having a junior dev around that you can ask to go off and do some work and they’ll come back with something you’ll most likely have to tweak but oftentimes a good starting point. This was my experience sometimes but there were also some interesting experiences. I’d prompted Claude to change one of the views to use matched geometry so that selecting an item would zoom it into view and dismissing it had it go back to the parent grid view. It proudly told me what a great idea that was, wrote a bunch of code to do it, got blocked by an error, and then unwound all the code and told me that the old view was stable and we should keep that rather than trying this idea. Now I’ve written this anecdote out, this does sound like some of the junior devs I’ve worked with previously.3
Generally I had a lot of fun working with the two products and tinkering to get a working prototype. I’d set myself the goal to not write much, if any, code by hand and I had been able to do that (despite using up all my daily Claude allowance). The experience with Claude was pretty incredible, and quite different from the experience with Codex. I subsequently saw that the version of Codex in the Xcode beta is quite a few versions behind which might explain the discrepancies.
It was an interesting experience seeing an app appear just by giving plain text prompts to a computer. I definitely wasn’t expecting to write a few prompts and come away with a pixel perfect app but I also wasn’t expecting it to be so easy to go from prompt to something that works.
On, the one hand it was mind blowing to just ask the computer to implement a geo-clustering algorithm without me having to think, but on the other I didn’t feel as excited with the end product. I picked the project up again today and started feeding in more prompts and just wasn’t that enthused.
Part of the fun of programming (at least for me) is exploring and tinkering and breaking things. I love learning about a new API and seeing how it works (even if Apple’s documentation can be… lacking). And I don’t mind a lot of the Liquid Glass design language so I’m interested to see how I could integrate that into custom apps.
I think what this has shown me is that these tools can have incredible benefits, but I don’t want to be handing over the reigns entirely just yet. I think I’ll still be writing a bunch of code myself but using AI where something is boring, repetitive or tedious.
I just read Joan Westenburg’s post with the great quote:
Most people, given a magic wand, would not wish for the ability to write software. They’d wish for their sofware to work properly without them having to do fuck-all.
I completely agree, and a lot of the time I fall into that category, but it’s also a lot of fun being in the “self-selected sample of tinkerers and builders”.