Recent articles

Jump to a random post

The importance of human touch in AI-driven development

Published on: February 6, 2026

AI is changing how we build apps. That’s not news. What might be less obvious is how this shift is forcing us to think differently about what actually matters in development. In this post, I want to share my balanced thoughts on AI-driven coding. I’d like to give you my perspective on why tons of […]

Read post

Migrating an iOS app from Paid up Front to Freemium

Published on: January 30, 2026

Paid up front apps can be a tough sell on the App Store. You might be getting plenty of views on your product page, but if those views aren’t converting to downloads, something has to change. That’s exactly where I found myself with Maxine: decent traffic, almost no sales. So I made the switch to […]

Read post

A Deep Dive into SwiftData migrations

Published on: January 19, 2026

SwiftData migrations are one of those things that feel optional… right until you ship an update and real users upgrade with real data on disk. In this post we’ll dig into: How to implement schema versions with VersionedSchema When you should introduce new schema versions When SwiftData can migrate automatically and when you’ll have to […]

Read post

A deep dive into Collections, Sequences, and Iterators in Swift

Published on: November 5, 2025

When you write for item in list the compiler quietly sets a lot of machinery in motion. Usually writing a for loop is a pretty mundane task, it’s not that complex of a syntax to write. However, it’s always fun to dig a bit deeper and see what happens under the hood. In this post […]

Read post

Using Observations to observe @Observable model properties

Published on: September 24, 2025

Starting with Xcode 26, there’s a new way to observe properties of your @Observable models. In the past, we had to use the withObservationTracking function to access properties and receive changes with willSet semantics. In Xcode 26 and Swift 6.2, we have access to an entirely new approach that will make observing our models outside […]

Read post

Should you opt-in to Swift 6.2’s Main Actor isolation?

Published on: September 11, 2025

Swift 6.2 comes with some interesting Concurrency improvements. One of the most notable changes is that there’s now a compiler flag that will, by default, isolate all your (implicitly nonisolated) code to the main actor. This is a huge change, and in this post we’ll explore whether or not it’s a good change. We’ll do […]

Read post

What is Approachable Concurrency in Xcode 26?

Updated on: September 12, 2025

Xcode 26 allows developers to opt-in to several of Swift 6.2’s features that will make concurrency more approachable to developers through a compiler setting called “Approachable Concurrency” or SWIFT_APPROACHABLE_CONCURRENCY. In this post, we’ll take a look at how to enable approachable concurrency, and which compiler settings are affected by it. How to enable approachable concurrency […]

Read post

Expand your learning with my books

Practical Swift Concurrency (the video course) header image

Learn everything you need to know about Swift Concurrency and how you can use it in your projects with Practical Swift Concurrency the video course. It contains:

  • About ten hours worth of videos and exercises
  • Sample projects that use the code shown in the videos.
  • FREE access to the Practical Swift Concurrency book
  • Free updates for future iOS and Swift versions.

The course is available on Teachable for just $89

Enroll now