I've taught iOS development to 20,000+ people. Helping indies ship with launchbuddy.app
Preparing Your SwiftUI App for iPhone Duo Apple’s new foldable iPhone is another reminder of something I’ve been preaching for years: don’t fight the framework. If your app already uses adaptive
App Store Optimization gets treated like a mysterious dark art, but it really isn't. Even with Apple's June 2025 updates shaking things up - the "new apps" launch-week boost got pulled, then quietly
This is a real A/B test I ran on the App Store page for my app, LaunchBuddy — and the treatment ended up performing 621% better than the original. That is not a typo. Six hundred and twenty one
WWDC26 is just around the corner, and we're all expecting major AI-related announcements. The rumors are talking about better on-device models, a Gemini-based cloud model, and - of course - the Siri
Believe it or not, but this was in my original MVP scope! I wanted to bring an ASC integration to LaunchBuddy from the very start, but never figured out how to approach it - I didn't want LaunchBuddy
Padding is one of my most-used ViewModifiers. In these 3 situations I prefer better alternatives. Don't get me wrong, it's totally fine to use .padding(). I use it a lot as well! And in the first few
The Swift-first solution for on-device persistance in SwiftUI. For over a decade, CoreData was the go-to first-party solution for on-device persistence. The framework also supports CloudKit, allowing
As with many "computer problems", the real problem is usually in front of the screen. This year, I decided to post an April fools joke on X that hit right home for quite a few people:
While AppIntents is mainly used to let Siri talk to your apps, the SwiftMCP package let's it talk to other LLMs as well. AppIntents is a framework first released in iOS 16 to let Siri talk to your
ObservableObject introduces side effects and performance problems, but there's an alternative. ObservableObject used to be "the only" solution to build ViewModels and other data sources for SwiftUI