Learn more about Swift concurrency

@preconcurrency usage in swift explained

Published on: May 28, 2024

When you enable strict concurrency checks for your existing projects, it’s likely that Xcode will present loads of warnings and/or errors when you compile your project for the first time. In this post, I’d like to take a look at a specific kind of error that relates to code that you didn’t write. The @preconcurrency […]

Read post

Dispatching to the Main thread with MainActor in Swift

Published on: April 23, 2024

Swift 5.5 introduced loads of new concurrency related features. One of these features is the MainActor annotation that we can apply to classes, functions, and properties. In this post you’ll learn several techniques that you can use to dispatch your code to the main thread from within Swift Concurrency’s tasks or by applying the main […]

Read post

Enabling upcoming feature flags for Swift using Xcode

Updated on: May 19, 2025

If you’re keen on reading about what’s new in Swift or learn about all the cool things that are coming up, you’re probably following several folks in the iOS community that keep track and tell you about all the new things. But what if you read about an upcoming Swift feature that you’d like to […]

Read post

Actor reentrancy in Swift explained

Updated on: April 23, 2024

When you start learning about actors in Swift, you’ll find that explanations will always contain something along the lines of “Actors protect shared mutable state by making sure the actor only does one thing at a time”. As a single sentence summary of actors, this is great but it misses an important nuance. While it’s […]

Read post

Building an AsyncSequence with AsyncStream.makeStream

Updated on: April 23, 2024

A while ago I’ve published a post that explains how you can use AsyncStream to build your own asynchronous sequences in Swift Concurrency. Since writing that post, a new approach to creating AsyncStream objects has been introduced to allow for more convenience stream building. In this post, I’ll expand on what we’ve already covered in […]

Read post

Everything you need to know about Swift 5.10

Updated on: April 23, 2024

The long awaited iOS 17.4 and iPadOS 17.4 have just been released which means that we could slowly but surely start seeing alternative app stores to appear if you’re an EU iOS user. Alongside the 17.4 releases Apple has made Xcode 15.3 and Swift 5.10 available. There’s not a huge number of proposals included in […]

Read post

Understanding unstructured and detached tasks in Swift

Updated on: June 4, 2025

When you just start out with learning Swift Concurrency you’ll find that there are several ways to create new tasks. Roughly speaking, you can make one of three tasks in Swift: Unstructured Tasks Detached Tasks Child Tasks While it’s true that a detached task is also unstructured, in this post I will refer to the […]

Read post

Structured concurrency in Swift explained

Updated on: July 4, 2025

Swift’s async await syntax heavily relies on a concept called Structured Concurrency. Structured concurrency describes the relationship between tasks that perform concurrent work. Specifically, it defines the relationship between parent and child tasks in Swift. Structured Concurrency finds its roots in the fork join model which is a model that stems from the sixties. In […]

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