DEV Community

Sami Iqram
Sami Iqram

Posted on

Two Weeks with LLMs: My iOS App Experiment

Image description

I recently spent two weeks exploring how Large Language Models (LLMs) could help me build an iOS app. My goal was to create a working app with minimal tech knowledge. The result? A test app in the App Store πŸŽ‰! Turns out, current AI tools are great at assisting rather than fully generating apps. The main challenges? Nailing the UX and grasping the big picture logic of a complex app.

The Good, the Bad, and the Ugly

LLM winners: ChatGPT 4 and Gemini Advanced were the most helpful for code generation and refinement. GitHub Copilot was handy due to its VS Code integration, and Perplexity was great for finding solutions to build errors.

Detailed Prompts = Better Code: Instead of vague instructions, I gave the LLMs detailed user stories. For example, instead of "create a login screen," I described the fields, buttons, and actions. This significantly improved the code quality.

Integration Nightmares: Combining code from different LLMs was tricky. They struggled to keep track of logic across multiple files, leading to incorrect method names and parameters. The chat interfaces made it painful to manage larger code snippets. GitHub Copilot's IDE integration was the best of the worst πŸ˜‰.

Build Errors Galore: Most of my time was spent fixing build errors. The main culprits were new dependencies, version conflicts, and the Xcode environment. LLMs helped me find solutions, but I wish an AI build agent could handle this automatically.

Comment and Documentation: I had to prompt the LLMs to include proper comments. Gemini Advanced performed the best in writing concise comments. Because of the IDE integration, Copilot helped generate high-level descriptions of the main files. It was simply easier to open the code file in VS Code and ask GitHub Copilot to generate high-level documentation. I could not find a good way to generate coherent overall technical documentation. Marketing documentation (e.g., press release) was okay.

App Store Hurdles: Preparing the app for the App Store was a manual process, and there was no clear, all-in-one solution for technical workflows, account setup, terms, and privacy policies. This is an area ripe for innovation!

Reflections and the Future
Creating a working iOS app with LLMs is possible (and magical!). But there are still challenges. Complex logic across multiple files is tricky, and debugging is frustrating. Useful and delightful integrated UX experience in the IDEs is necessary for developers. We're only scratching the surface of how LLMs can be used in app development.
Imagine a future where IDEs, frameworks, build tools, and app stores all leverage AI to streamline the entire process, from idea to finished app β€” ready for the end user! Minimizing the time and complexity here as much as possible should be our north star. I'll continue experimenting with new tools and look forward to your suggestions! (And coding memes are always welcome. πŸ˜‚)

Top comments (3)

Collapse
 
kakauandme profile image
Kirill Kliavin

What's the app?

Collapse
 
tinkon profile image
Sami Iqram

A simple voice recorder app. I have not launched it yet.

Collapse
 
kakauandme profile image
Kirill Kliavin

Got you. These are interesting insights. I think your post will be more interesting if you share the app or the code.