top of page


Examples of Modern iOS Apps Built by AI (With Source Code)
Real iOS apps built with AI and the CFA Toolkit: SwiftUI, SwiftData, Swift Concurrency and on-device AI, with public source code and honest licence notes.

Matthew Thomas
Oct 167 min read


How Can I Use AI to Build an iOS App and Submit It to the App Store?
A step-by-step guide to building a maintainable iOS app with AI and the free CFA Toolkit, then shipping it through TestFlight and App Store Connect.

Matthew Thomas
Oct 167 min read


What Does @concurrent Mean in Swift 6.2?
Swift 6.2's @concurrent explained: why nonisolated async functions now run on the caller's actor, when to use @concurrent, and how to migrate safely.

Matthew Thomas
Oct 166 min read


AI Tools for Generating iOS Apps: The Free CFA Toolkit
The free, open-source CFA Toolkit gives AI coding assistants eight skills, an Xcode template and a dashboard for building and maintaining iOS apps.

Matthew Thomas
Oct 156 min read


More Than a Swift Concurrency Course
3 Days of Swift Concurrency is growing beyond a course: iOS App Development with CFA brings tutorials, open-source apps, architecture and AI skills together.

Matthew Thomas
Oct 156 min read


Are You Falling Behind as an iOS Developer?
Worried you're falling behind as an iOS developer? Build one modern app with AI, learn Swift Concurrency by making it work, tidy the code, and ship it.

Matthew Thomas
Oct 156 min read


Should I Use Task.checkCancellation or Task.isCancelled in Swift?
Task.checkCancellation vs Task.isCancelled in Swift: when to throw CancellationError, when to return quietly, where to put the checks, and which tasks inherit cancellation.

Matthew Thomas
Oct 156 min read


How Do I Use withTaskCancellationHandler in Swift?
How withTaskCancellationHandler works in Swift: when onCancel runs, why it can't touch actor state, and safe patterns for continuations and callbacks.

Matthew Thomas
Oct 157 min read


How Do I Unit Test async/await Code in Swift?
Test async/await code in Swift 6 without flaky sleeps: async tests, #expect with await, confirmation, cancellation and gated test doubles from real apps.

Matthew Thomas
Oct 148 min read


How Do I Use AsyncStream in Swift?
Turn repeating callbacks into a for await loop with AsyncStream. Learn yield, finish, onTermination, buffering and a real Swift 6 actor example.

Matthew Thomas
Oct 147 min read


How Do I Convert a Completion Handler to async/await in Swift?
Wrap a completion handler in withCheckedContinuation and resume exactly once. Learn throwing, delegate and cancellable continuations with Swift 6 code.

Matthew Thomas
Oct 146 min read
bottom of page