Give your simulator superpowers

RocketSim: An Essential Developer Tool
as recommended by Apple

Subscribe to my YouTube Channel

AI App Development: What I Learned in One Month

It was December 2025 when I started focusing on AI App Development. I started a new YouTube series, From App Idea to 10K MRR, found an app idea, and started building. While I used AI tools for a while, this was the first time I started using it for a new app seriously.

It got me excited, and I went fast, developed multiple features at the same time using multiple agents and tools. And yes, it made me move fast! And that felt good. Until it didn’t anymore. It’s crazy for me that it’s only been a month, but I’m sure the learnings shared in this article will help many of you today.

At this point, I felt like I could basically stop working on this app.

1. Tech debt grows fast

The result of AI app development: many files that don't even fit in a 3-column image.
The result of AI app development: many files that don’t even fit in a 3-column image.

It’s so easy to kickstart new tasks in Codex or other agents. At a certain point, I was walking the dog and talking to Codex to explain an app feature, kickstarting multiple cloud tasks.

As my goal was to go fast, get a proof of concept as quickly as possible, I became lazy to reviewing outputs. I basically tested the app, concluded ‘it worked’, and merged into main. I know, this sounds really cheap if you’re reading it now. Yet, the energy I got from moving fast was fulfilling and I almost felt like “it doesn’t matter how the code looks, as long as it works”. Well, I got back to that later.

Tech debt grows fast with AI app development. The project became owned by AI. I had no idea what the files did or what the folder structure looked like. Whenever I had to manually apply changes, I was spending quite some time finding my way around, and that did not feel great. I was losing control.

While progressing so fast felt great, I wasn’t taking my agent environment seriously enough. Which brings me to the next point:

FREE 5-day email course: The Swift Concurrency Playbook by Antoine van der Lee

FREE 5-Day Email Course: The Swift Concurrency Playbook

A FREE 5-day email course revealing the 5 biggest mistakes iOS developers make with with async/await that lead to App Store rejections And migration projects taking months instead of days (even if you've been writing Swift for years)

2. A good AI environment matters, even for a proof of concept

Agents do what you ask them to do. However, if you don’t give them strict guidance, they’ll fill in gaps and create assumptions. I did not have an AGENTS.md file, I did not have Cursor rules, I was not using linters, and I certainly didn’t think about tech debt clean up.

As soon as I noticed, I started spending time reading up on best practices. I created an AGENTS.md file with best practices, and whenever agents did something wrong, I told them to update the AGENTS file so it wouldn’t happen again. That compounds into agents becoming smarter after every task.

I configured SwiftLint and fixed all issues. I also linted after every task and ensured the project compiled without errors or warnings. Many of the best practices were later incorporated into Agent Skills (read more in this article: Agent Skills explained: Replacing AGENTS.md with reusable AI knowledge).

Finally, cleaning up code became a consistent behavior. A refactor is easily done in AI app development, but don’t forget to ask your agent to remove any code that’s no longer needed. Planning mode is great here, as you can review the files it wants to remove.

3. Become an end user as soon as possible

Becoming an end user yourself for an app developed with AI is crucial for creating good products.
Becoming an end user yourself for an app developed with AI is crucial for creating good products.

I started developing for Mac first because I’ve been mostly building for macOS lately. It felt familiar, but it did limit me from becoming an end user. I’m not always behind my MacBook, and the Vydio concept didn’t limit me to macOS. That’s why I quickly decided to switch focus to iOS.

This resulted in my sitting on the couch, playing around with my app. I noticed issues, triggered Codex for bugfixes, and became an end user myself. The impact on product quality was game-changing, and from that point on, the app quickly became what it is today. If you ask me, it’s a must to be an end user yourself constantly when doing AI app development.

Funny enough, building for iOS also made me an end user of my other app: RocketSim. Since I left WeTransfer in 2024, I haven’t built much for iOS anymore. The only reason for using Xcode’s Simulator was to test out RocketSim features. But now I’ve started using RocketSim myself, and I’ve quickly found several improvements. Two examples of why it’s so important to become an end user yourself.

4. Cut your dependencies or validate them quickly

I was 3 weeks in and decided to submit my app to TestFlight. The app got rejected since my OAuth application was not yet approved by Google. After submitting the project to Google for review, I got the first rejection:

Domain Similarity: Your (homepage/privacy policy domain) is a close resemblance to the Google product, which could potentially confuse users and lead them to believe your app is officially affiliated with or endorsed by Google.

I picked the domain name ytstudiooptimizer.com based on the app name “Optimizer for YT Studio” I came up with. “YT Studio” was a great term to rank for in both the App Store and on Google. While it probably makes a lot of sense for you now, I didn’t realize at that point that Google could reject my OAuth application for that domain.

Switching the domain meant finding a new name (which became www.vydio.app), and I had to update all configurations accordingly. This was already painful, especially since I was excited to get started with beta testing.

Though: this was just the beginning.

I submitted the app again, with the new name, and got rejected quite quickly again:

Our review found that your application integrates directly with AI Service, which conflicts with Google’s data protection policies.

The whole idea of the app was to analyze YouTube video data and optimize it using AI services like OpenAI.

At this point, I felt like I could basically stop working on this app.

I suggested using Gemini because it’s owned by Google, and I got approval. This became a lucky outcome, as it could also have been a case closed and three weeks of work thrown away.

That’s why it’s crucial to consider risks for your proof of concept. Developing apps with AI can make you go fast and get you distracted quickly as well. Building and trying the app is one thing, but you also need to find out whether it has any dependencies that could stop you from releasing. I should’ve focused on getting OAuth approval much earlier in the process.

5. Brainstorm with AI, but consciously

The new app’s name wasn’t easy. I was emotional about the rejection and wanted to get over it as quickly as possible. I opened ChatGPT and started asking, since app development using AI doesn’t mean you only have to use agents. We all know ChatGPT is great at giving you the answers you ask for, so not much later, I opened a poll on socials with names like “Tubescale”. A terrible name, and I’m happy I didn’t pick it.

The difference was made as soon as I started talking about the app names with family, friends, and other developers. Real conversations, speaking out the name myself, how does it sound? How do you think about the app name after a night of sleep?

Vydio sounds like “Video” when you pronounce it, but it’s also its own identity. The domain name still existed, and there were no competitors or other products with the name. It felt like a premium brand compared to Tubescale, and so it began.

Side fact: when I started RocketSim, I got many people saying:

People will think it’s a Rocket Simulator game

Well, the name became a brand, and it’s now a highly successful app that’s even used by the developers at NASA. That’s very unrelated info, but funny to share. My point is: a brand will grow, the name is just the start.

Conclusion

It’s been an exciting time for me as a developer. I can’t remember changing my workflow much over all the years I’ve been building apps. With these learnings after just four weeks, I can’t imagine how much I’ll have to share in months from now.

If you want to improve your AI development knowledge, even more, check out the AI Development Category page. Feel free to contact me or tweet me on Twitter if you have any additional tips or feedback.

Thanks!

 
Antoine van der Lee

Written by

Antoine van der Lee

iOS Developer since 2010, former Staff iOS Engineer at WeTransfer and currently full-time Indie Developer & Founder at SwiftLee. Writing a new blog post every week related to Swift, iOS and Xcode. Regular speaker and workshop host.

Are you ready to

Turn your side projects into independence?

Learn my proven steps to transform your passion into profit.