top of page


Should I Use Swift Concurrency or Combine?
Swift concurrency vs Combine compared on network calls, timers and debounced search, with AsyncStream code, a decision table and a gradual migration path.

Matthew Thomas
Oct 275 min read


What Is Swift 6 Strict Concurrency Checking?
Strict concurrency checking is Swift's compile-time data-race checker. See Minimal, Targeted, Complete and Swift 6 mode compared on the same code.

Matthew Thomas
Oct 205 min read


Are Structs Automatically Sendable in Swift?
Internal structs made of Sendable parts are inferred Sendable. Public, generic or class-holding structs aren't. See each case compiled with Swift 6.2.

Matthew Thomas
Oct 195 min read


What Is a Sendable Closure in Swift?
A @Sendable closure may run in another concurrency domain, so it can only capture Sendable values. Learn the errors, fixes and sending vs @Sendable.

Matthew Thomas
Oct 195 min read


What Is Sendable in Swift?
Sendable marks types that are safe to share between concurrent code. Learn what qualifies, how the compiler checks it and how to fix errors in CFA code.

Matthew Thomas
Oct 195 min read


What Is a Global Actor in Swift?
A global actor is one shared isolation domain you apply as an attribute, like @MainActor. Learn to define one, fix its init error and when to use it.

Matthew Thomas
Oct 195 min read


What Is Actor Isolation in Swift?
Actor isolation is how Swift decides which code may touch which state. Learn the rules, the compiler errors, nonisolated and isolated parameters in CFA.

Matthew Thomas
Oct 195 min read


What Is the Actor Reentrancy Problem in Swift?
Actor methods can be interrupted at every await. See the reentrancy problem reproduced in Swift 6.2 and fixed by caching in-flight tasks in a CFA actor.

Matthew Thomas
Oct 195 min read


What Is a Task in Swift?
A Swift Task is a unit of async work with an actor context, a priority and a cancellation flag. The hub for Task { }, child tasks, groups, sleep and more.

Matthew Thomas
Oct 195 min read


What Is an Executor in Swift Concurrency?
An executor decides where a task's code runs: the main executor, an actor's serial executor or the global concurrent pool. Learn the model without threads.

Matthew Thomas
Oct 195 min read


What Is Task.immediate in Swift?
Task.immediate (Swift 6.2, iOS 26) runs a task's body synchronously until its first await. Learn when to use it and how it differs from Task { }.

Matthew Thomas
Oct 195 min read


What Does Task.yield Do in Swift?
Task.yield suspends the current task so others on the same executor can run. Learn when it helps, when it doesn't, and how it differs from sleep.

Matthew Thomas
Oct 195 min read


What Is async let in Swift?
async let starts a child task immediately and you await it later. Learn ordering, errors, implicit cancellation and when to use a task group instead.

Matthew Thomas
Oct 195 min read


What Is a Child Task in Swift?
A child task is created with async let or a task group and is bound to its parent's scope. Learn what children inherit and how failure and cancellation flow.

Matthew Thomas
Oct 195 min read


What Are Task-Local Values in Swift?
@TaskLocal values travel with a task to its children and to Task { }, but not to Task.detached. Learn how to use them for request IDs and logging.

Matthew Thomas
Oct 195 min read


What Is the Difference Between Structured and Unstructured Concurrency in Swift?
Structured concurrency ties child tasks to a scope; unstructured tasks live on their own. Compare async let, task groups, Task { } and Task.detached.

Matthew Thomas
Oct 195 min read


What Is an Unstructured Task in Swift?
An unstructured task is a Task { } or Task.detached with no parent scope. Learn what that means for cancellation, lifetime and ownership in CFA.

Matthew Thomas
Oct 185 min read


What Is Task Priority in Swift?
Swift task priority explained: the levels, which tasks inherit priority, how escalation works, and when setting a priority actually matters.

Matthew Thomas
Oct 185 min read


What is the Main Thread?
3DaysOfSwiftConcurrency.com Free online Swift Concurrency tutorials. What Is the Main Thread? Every iOS application begins with a main thread. The main thread is an execution context used for much of the work that directly affects the application interface. Touch handling, view updates, layout, animation coordination and changes to UI-facing state all depend on the main execution domain remaining available. This is why iOS developers so often discuss blocking the main thread.

Matthew Thomas
Aug 1136 min read


What is Swift Concurrency?
3DaysOfSwiftConcurrency.com Learn modern day cooperative architecture in Swift. What is Swift Concurrency? If you've ever wondered why Apple named its framework Swift Concurrency instead of Swift Parallelism, you're asking exactly the right question. Most tutorials introduce Swift Concurrency by teaching Task, async, await and actors. Before long you're writing asynchronous code, but there is one problem with this approach. It teaches you how to use the language before explai

Matthew Thomas
Aug 541 min read
bottom of page