swift-concurrency
Installation
SKILL.md
Swift Concurrency
Priority: P0 (CRITICAL)
Write Structured Async Code
- Async Functions: Mark with
asyncand call withawait. async let: Useasync letfor parallel execution when multiple tasks independent.- Task Groups: Use
withTaskGrouporwithThrowingTaskGroupfor spawning dynamic number of tasks. - Error Handling: Combine with
throws. Always handleCancellationError.
See implementation examples for parallel fetch with async let and Task Groups.
Isolate State with Actors
- Data Isolation: Use
actorfor shared mutable state to avoid data races. @MainActor: Annotate UI classes (Views, ViewModels) with@MainActorfor main thread execution. UseMainActor.run { ... }for inline UI updates in async blocks.- Global Actors: Use
@GlobalActorfor specific thread-bound resources. - nonisolated: Use
nonisolatedfor methods that don't access actor state to avoid unnecessary hops.