|
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, you struggle. You're on the tip of what you understand, and it can be frustrating when things don't work like you expect. When this happens, sometimes you need to believe that you can do it or that something is possible. The struggle makes it difficult when you're unsure how to do it. Recently, I overcame a challenging bit of code. It reminds me of a few other times in my programming career when I didn't know if my code would work, but I pushed on. Cross-Platform C++ Code About 9 years ago, I ported a Windows C/C# threaded server to cross-platform C/C++ code that ran on Windows and macOS. There were weeks of compiler errors I had to fix for macOS. I fixed one error after the next until one day, when everything compiled. And that was just the tip of the iceberg. To make it reliable, I had to fix concurrency issues using the Xcode Thread Sanitizer to protect shared mutable state. Huge functions with nested if/else conditions did not make it easy to see all the potential code paths. That code was error-prone and could deadlock the entire server. To mitigate stability concerns, I built a test app in Swift that could stress test the C++ server with 100s of requests per minute to verify it worked (while I slept). And that is one of the reasons I love Xcode. It has tools for debugging challenging problems, while Visual Studio did not. Genetic Artwork In 2009, I started working on a genetic algorithm to create artwork. It started on the Mac and had mildly promising results, but was only monochrome. When the iPad was announced in 2010 by Steve Jobs, I decided to port it to iPhone and iPad, and the results were ok . . . . . . But after using the app more and more, exciting patterns emerged. It's that push into the unknown that you sometimes need to do, day in and day out. Making incremental progress until all of a sudden, you have something working. It can be non-stop problem-solving until you figure it out. That is the challenge of software and cutting-edge technology. SwiftUI Challenges Some things are easier, like SwiftUI, to see immediate visual results. It feels fun and exciting. But sometimes you run into edge cases like I did with GoPro's Quik app. In 2022, I wasn't sure if SwiftUI was stable enough – and it wasn't entirely — that came later with iOS 16 and more SwiftUI bug fixes. You don't know until you try, and you won't have confidence that it will work out exactly how you expect. But if you never try, you'll never enjoy the progress and satisfaction of making something new from an idea, and learning along the way. SwiftUI Challenges I love working on UI and I am planning to share new SwiftUI tutorials to help push your UI design skills later this month. As you practice more SwiftUI design challenges, you will build a SwiftUI toolkit that you can use in different scenarios. It feels weird to practice something so small, but in the few coding sessions I have done, I keep learning new things. Or I'm confronted with a design problem that I have not solved before. Here's a sneak peek at an upcoming tutorial. How would you build this widget using SwiftUI? How should it work? Is the text dynamic? What are you working on? I'm working on legacy C, C++, Objective-C, Swift, and SwiftUI interoperability and migrating from Cocoapods to SPM. There are many moving parts, but I solved the last big obstacle . . . that I can see right now . . . Hit reply and let me know what you're making in SwiftUI or iOS. Talk soon, Paul Solt P.S. Need a challenge? Try my last SwiftUI Challenge. How would you implement the design? |
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, AI agents struggle with iOS development for a simple reason: they can’t actually run Xcode. In this video, I have an impromptu conversation with Cameron Cooke from the UK about XcodeBuildMCP, a tool that finally lets AI build and run iOS apps in the Simulator. We talk through the backstory, the real problems it solves, and why this changes how AI agents work with iOS and macOS apps. If AI + Xcode is Broken for you, then you might need this tool. Watch here: AI Couldn’t Run My iOS...
Hey Reader, New Codex models are incredibly good for Swift code for iOS/macOS apps. You can easily install codex via here Just open Terminal/Ghostty and type: npm i -g @openai/codex Using codex, you can use simple language to talk to your agent. See the first video if you want a breakdown on the tools I am using, and some of the rules in my agents.md rule file. Spider Warning: if you're afraid of spiders, you won't want to watch these videos. I am making a dangerous spider identification app,...
Hey Reader, New video on my workflow for building iOS and macOS apps. GPT 5.2 is insane. It fixed so many problems the first time. Less back and forth from any other model to date. You can fly way faster from idea to prototype in minutes. It's beyond crazy. In a day I can have a working app that solves a key problem.I could never code this fast without AI. It let's you try ideas that you would never consider before due to time constraints.Codex + Xcode: 3 Workflows You Need for iOS/macOS...