Hey Reader, Can Cursor AI (using Claude Sonnet 3.5 or ChatGPT) build your apps? Yes. But are those apps going to be good? Probably not. There is a lot of Hype about AI in the development scene, and I want to show you what it’s like. Watch my latest video: Can AI Really Code? My Honest Take On Cursor AI
You can’t expect great results from my experience and watching other iOS developers work with the current LLM AIs on YouTube. The AI will introduce bugs and break the UI. It becomes tiring to copy and paste code back and forth to ChatGPT or Claude, and there are mistakes between each iteration. There is a better way . . . Cursor AI (Editor) Cursor AI promises you can modify your code files directly and progress faster. The challenge is that those suggestions are not always good. I don’t trust AI as it tends to break my existing code. It replaces things I don’t want it to touch, which means more work on my part to verify the changes are good. If you want to explore using AI, I suggest using git and branches as you work. You should stash changes if the AI can’t get it working and try a different approach. I created a special branch just for the experiment AI-driven feature, and when one AI failed to get the code working, I branched and attempted to let the other one figure it out. Ultimately, you still need to know how to code because you will fix the parts that don’t work. Window Snapping Logic on Mac (Super Easy Slides) For the sake of an experiment this past week, I used AI to help me write window-snapping logic. Previously, I wrote a mini demo of this functionality for my Super Easy Timer, but I ran into multi-monitor window bugs that prevented me from shipping it. Windows on the edges would sometimes snap to the wrong monitor. You can try my window snapping logic with my Super Easy Slides TestFlight beta. I learned this snapping was because if you set the window origin, that point could be on either monitor when it’s offscreen or near the edge. So, to help the windowing system manage offscreen windows, you need to set the full frame. That way, the windowing system can see the window is offscreen on your current monitor. Neither Claude nor ChatGPT was smart enough to suggest this as a workaround; I had to think about and experiment with it. From my experience, that’s always the challenge of macOS development. The documentation doesn’t talk about all the nuances related to window positioning. It feels like a lot of trial and error. Let me know if you have any tips or best practices for prompting the AI with Cursor. Talk soon, -Paul P.S.
P.P.S. If you want to beta test my Super Easy Slides app, you can join the TestFlight beta here and send me your feedback. I’m using the app to create slideshows for my videos and play with different styles of videos. |
Join 5,712+ developers learning iPhone app development and App Store publishing. Every week, I share iOS tips on how to create polished, intuitive apps—backed by insights from shipping seven apps and working at GoPro, Apple, and Microsoft.
Hey Reader, In 45 minutes I’ll show you how to give your Swift Charts that Apple-level polish—no design degree required. I start with raw spending data and end with a stunning Budget Widget—Perfect for a quick glance. You’ll walk away knowing how to: Style bar charts and labels to match any design Hide grid lines and format weekdays for clarity Wire up a BudgetViewModel that feeds live data 👉Watch: Build a Budget Widget with Swift Charts ⚡ (45-min) Need hands-on practice? Clone the starter...
Hey Reader, How do you translate your app into multiple languages? At GoPro, I partnered with the localization team to establish best practices—and with the new String Catalog, you can extract all your Text() strings at build time so nothing slips through the cracks. 🎥Watch SwiftUI iOS Localization Tutorial: Master String Catalogs in Xcode 16 You’ll learn: Best practices for localization How to test translations in both iOS apps and widgets How to Preview different languages in SwiftUI How to...
Hey Reader, Last night, I had a breakthrough. The weeks of effort exploring different options finally paid off – it felt fantastic. I was tired, but accomplished. Below, I will share three stories about the unknown and how to push through even if you're unsure what to do. Programming can be hard. It can be fun. And it can be hard again. I have been busy traveling and had family visiting. And I have been wrestling with build issues around legacy code. Sometimes when you learn something new,...