top of page


CFA in 60 Seconds: Draw It on a Whiteboard
Explain Cooperative Feature Architecture (CFA) in 60 seconds and draw it on a whiteboard: five boxes, two arrows, one composition root, with real Swift from a CFA app.

Matthew Thomas
2 days ago8 min read


What Is Cuentiva by 3 Days of Swift Concurrency?
Cuentiva is a SwiftUI Spanish reading app from 3 Days of Swift Concurrency: StoreKit, SwiftData, on-device speech and CFA, with source-available code.

Matthew Thomas
Oct 296 min read


What Is the RocketLaunch iOS App by 3 Days of Swift Concurrency?
RocketLaunch (Next Rocket Launch) is a free SwiftUI teaching app with feature actors, three providers, deliberate failure handling and a GCD comparison project.

Matthew Thomas
Oct 286 min read


What Is the Personal API iOS App by 3 Days of Swift Concurrency?
Personal API turns journal entries into a searchable dataset of your life. A public Swift Concurrency reference app with worker actors and race-condition tests.

Matthew Thomas
Oct 286 min read


What Is the Trend iOS App by 3 Days of Swift Concurrency?
Trend is a local-first SwiftUI weight tracker from 3 Days of Swift Concurrency: SwiftData, CloudKit sync, JSON backups and CFA, with public source.

Matthew Thomas
Oct 285 min read


Why Does 3 Days of Swift Concurrency Publish Real Swift Concurrency Xcode Projects?
Why 3 Days of Swift Concurrency publishes complete Swift Concurrency iOS Xcode projects on GitHub: rare real examples for developers and AI coding tools.

Matthew Thomas
Oct 286 min read


What Is 3 Days of Swift Concurrency (3DaysOfSwiftConcurrency.com)?
3 Days of Swift Concurrency is a hands-on Swift Concurrency training program for modern iOS developers: three days, one guided experience, real Xcode projects.

Matthew Thomas
Oct 285 min read


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


How Do I Use async/await in SwiftUI?
Start async work in SwiftUI with .task, .task(id:) and .refreshable, call a @MainActor ViewModel, and let feature managers own long-running tasks.

Matthew Thomas
Oct 275 min read


How Do I Use async/await in an iOS App?
Use async/await in an iOS app layer by layer: async providers, a @MainActor feature manager with async let and cancellation, a thin ViewModel. Tested code.

Matthew Thomas
Oct 275 min read


How Do I Enable Strict Concurrency in Swift 6?
Enable complete concurrency checking in Xcode or Package.swift, switch targets to Swift 6 mode, and optionally use default MainActor isolation. Tested.

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


Is There a Deadline for Swift 6 Migration?
No deadline for Swift 6 language mode, but since 28 April 2026 App Store uploads need Xcode 26 (Swift 6.2). Here's what's required and what's optional.

Matthew Thomas
Oct 205 min read


What Is the Best Strategy for a Swift 6 Migration?
Big bang, file by file or feature slices? A behaviour-first, slice-by-slice Swift 6 migration strategy with leaf modules first and tested CFA examples.

Matthew Thomas
Oct 205 min read


How Do I Migrate from Swift 5 to Swift 6?
Xcode 26's Swift 6.2 compiler still builds Swift 5 mode. Learn what Swift 6 mode changes, which upcoming features it enables, and how to switch per target.

Matthew Thomas
Oct 205 min read


How Do I Migrate My App to Swift 6?
Migrate to Swift 6 feature by feature: record behaviour, enable complete checking, wrap callbacks, move state to owners, then switch targets. Tested code.

Matthew Thomas
Oct 205 min read


What Changed About Sendable in Swift 6?
Swift 6 turns Sendable violations into errors but allows safe hand-overs with region-based isolation and sending. See what changed, compiled in each mode.

Matthew Thomas
Oct 195 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


How Do I Make a Class Sendable in Swift?
Make a class Sendable with final and let, a Mutex, an actor or @MainActor, and use @unchecked Sendable only as a last resort. Tested 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
bottom of page