I bet we’ve all been there, watching someone killing all their apps since it would positively impact their battery life on iOS. My wife is even constantly doing this and I just can’t break the habit. As an iOS developer, looking at the energy gauge every day, I know this has to change. Last weekend, …
The 7 changes I do for every new Xcode project
Whether it’s a new or an existing Xcode project, I always apply these changes immediately when I open it for the first time. I’ve been developing apps since 2009, and some of these changes prevent tech debt from day one. Even though we should trust Xcode’s defaults, the reality is that a new project today …
Black Friday: SwiftLee Courses & RocketSim
It’s Black Friday week, and that means it’s the best time to become a concurrency expert, go independent, or increase app development productivity with RocketSim. My three core products are available at a reduced price and this week’s article will tell you how to get it. How to get the discounts If you’re already familiar …
Approachable Concurrency in Swift 6.2: A Clear Guide
Approachable Concurrency is a term first introduced in one of Swift’s vision documents to facilitate the adoption of async/await. Swift Concurrency has been available for a while, but many developers still find it difficult to adopt. Simultaneously, new developers got introduced to concurrency way too early in their adoption process. Approachable Concurrency should be an …
MainActorMessage & AsyncMessage: Concurrency-safe notifications
Standard notifications using Notification Center are only concurrency-safe when using the MainActorMessage or AsyncMessage protocols. These protocols are available since iOS & macOS 26+ and should become the standard for using thread-safe notifications. The Notification type is nonisolated by default, even in cases where it’s posted from known isolation domains like the main actor. To …
Simulator Camera: Test your app without a physical device
Camera testing in Xcode’s Simulator is possible, but I’m sure you’re now wondering: how?! For years, this has not been possible. Literally, it never has been possible to test the camera on the Simulator. Crazy if you think about it. Android’s Simulator has a way of at least basic functionality, but on iOS, we’re always …
Build performance analysis for speeding up Xcode builds
Build performance can be analyzed in Xcode to speed up your builds. This can quickly speed up your workflow and save a lot of time during the day for all developers working on the project. Slow builds often distract us as they enable us to focus on distractions like social media and Slack. By investigating …
SwiftUI Architecture: Structure Views for Reusability and Clarity
As your SwiftUI projects grow, the need for a better SwiftUI architecture grows, as it’s easy for view bodies to become very long. You start with a simple screen, and before you realize it, your body includes dozens of nested VStacks, HStacks, and custom modifiers. At some point, scrolling through the body feels like reading a novel. In …
Why Swift Migration Tooling Matters
Swift offers migration tooling to help you migrate existing code to new upcoming features. Swift Evolution proposals on GitHub will mention an upcoming feature flag that you can use to opt in early. For most of these features, it’s likely that they’ll become the default in the future. Therefore, it’s essential to know how to …
The 5 biggest mistakes iOS Developers make with async/await
App Store Rejections, your UI freezing for 5 seconds, and migration projects taking months instead of days (even if you’ve been writing Swift for years). These could all be the result of common mistakes that are easy to make when writing Swift Concurrency code. I’ve created a 65+ lessons course, wrote tens of articles on …