Using ChatGPT and Vibe Coding
Monday, May 26, 2025
I had no idea what I was doing when I sat down Saturday morning. But by the afternoon, I had an app running on my iPhone. Here’s how I used ChatGPT to build it, vibe-style.
I started by simply asking, “How do I vibe code an app.”
The response that I got was a breakdown of creating the app within Xcode. I had Xcode open and clicked to work with apps and away we went. I had it automatically update the code with whatever I asked.
The Spark
To start, I sent a screenshot of the new project selection and it walked me through which project to select for the app. It patched the ContentView.swift with a very basic app with a text box and an add task button. I even had to ask it how to view the app. It walked me through the simulator as well as how to connect my phone and get it working on my device. I was so excited to see something I “created” on my phone.
I know that I didn’t type every line of code, but I wonder if that era is over.
I didn’t have to know any code at all. All that I did was tell ChatGPT what I wanted and it updated the code for me. I would run the code and it would pop up on my phone with the new changes I had requested. This made me a bit nervous as I had no clue what the actual code meant at the time. I was so excited, I didn’t think to take screenshots, but I excitedly showed it off to my family that I had something on my phone that was my app.
Learning as I Go
As more and more lines of code were created, I thought to myself that this would be a great learning experience as I was just planning on seeing what would happen and suddenly fell into an app being on my phone. I had no intentions of that happening when I sent the first question of how to vibe code an app. So, I asked ChatGPT to comment on all of the code that it created as well as anything else it added. I was amazed at how it all started to make sense once I read the comments so that I could see what it was creating.
After this, I just started asking it to do everything. Create a dark mode, add a timer, change this button, create a tab bar, make this more visually appealing. It did it all and the few times there was a build error, I would just send ‘build error’ and it would look at the code and explain what it had done wrong. _ The build error is now fixed. editingTaskID has been wrapped in a custom EditableTaskID struct that conforms to Identifiable, making it compatible with the .sheet(item:) view modifier. You should now be able to build and run the app successfull_ I would then go to the code and see what it changed.
Hitting the Limits
After about an hour, I started getting “Unable to generate edits” error messages from ChatGPT.
I would ask it to retry, but would get the same error, so I asked it why it wasn’t working anymore. It replied, “It looks like the editing tool (which lets me make live updates to your code) was temporarily disabled by the system — possibly due to an internal timeout or maintenance. This sometimes happens if there’s a long session or too many rapid edits in a short time. It’s usually temporary, and should re-enable itself shortly. You don’t need to do anything on your end. In the meantime, I can still guide you step-by-step through any changes — or prepare the exact text for you to paste in. Just let me know what you prefer!” So, it started walking me through step-by-step directions on where to enter the code and what code to replace. I thought this was a great thing, but slowed down my progress tremendously.
At this point, I just wanted to see what all we could create.
So, I did what it told me to do for a few iterations of the app. It would occasionally say that it could do the changes for me and whenever I said go ahead, I would get the same “Unable to generate edits” error. I thought that creating a new chat might help and we started right up with ChatGPT doing all the heavy lifting and me just rambling off ideas.
When it came to navigation, I asked what the best method was for creating a tab bar across the bottom. It gave several options and showed the code, as well as the pros and cons of each. It was like having a coding genius that I could bounce ideas off of, tell them to do it, and within seconds the updated app would be on my phone. It was truly a wild experience!
Once I had the main section of the app built, I told ChatGPT to build a Settings screen with everything that it could think of. So it built a settings screen with a settings cog in the upper right corner. It had built a full page of toggles and options off that one request. The trouble was that none of the toggles did anything. So, I went one by one in telling it that this setting needed to change this and this setting needed to do this.
I eventually had to quit because it was a Saturday and I needed to do something besides sitting in front of my computer. My mind was racing all day long about what I could add next and what I could change.
The Dilemma
I am really struggling about what to put my time into. I want to build this out, but at the same time I really do not want to push something to the App Store, that I personally didn’t understand. It has been a great learning experience and I want to learn more code and how Swift works before I go any further, but this was an eye opening experience for me and overall I am happy with where I am on this journey.