Agent skill · software engineering · affaan-m

swift-concurrency-6-2

Swift 6.2のアクセシブルな並行処理——デフォルトはシングルスレッド、@concurrentは明示的なバックグラウンドオフロードに使用し、分離の一貫性はMainActor型に使用する。

Why this skill is useful

Provides specific patterns and practices for implementing concurrency in Swift 6.2 that the AI wouldn't reliably generate on its own.

What it needs

About 2k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.

What this skill does

Swift 6.2 アクセシブルな並行処理 コードがデフォルトでシングルスレッドで実行され、並行処理が明示的に導入されるSwift 6.2の並行処理モデルを採用したパターン。パフォーマンスを犠牲にすることなく、よくあるデータ競合エラーを排除する。 起動条件 Swift 5.x または 6.0/6.1 プロジェクトを Swift 6.2 に移行する場合 データ競合安全性のコンパイラエラーを解決する場合 MainActorベースのアプリアーキテクチャを設計する場合 CPU集約的な処理をバックグラウンドスレッドにオフロードする場合 MainActor分離された型にプロトコル一貫性を実装する場合 Xcode 26で「アクセシブルな並行処理」ビルド設定を有効にする場合 核心的な問題:暗黙のバックグラウンドオフロード Swift 6.1以前では、非同期関数が暗黙的にバックグラウンドスレッドにオフロードされ、一見安全に見えるコードでもデータ競合エラーを引き起こすことがあった: Swift 6.2ではこの問題が修正された:非同期関数はデフォルトで呼び出し元と同じActorに留まる。 コアパターン——分離の一貫性 MainActor型が非分離プロトコルに安全に準拠できるようになった: コンパイラはこの一貫性がMainActor上でのみ使用されることを保証する: コアパターン——グローバル変数と静的変数 MainActorを使用してグローバル/静的状態を保護する: MainActorデフォルト推論パターン Swift 6.2ではMainActorをデフォルトで推論するパターンが導入された——手動の注釈なし: このパターンはオプトインで、アプリ、スクリプト、その他の実行可能ターゲットに推奨される。 コアパターン——@concurrent を使ったバックグラウンド処理 真の並列処理が必要な場合、@concurrent を使って明示的にオフロードする: 重要: この例は「アクセシブルな並行処理」ビルド設定——SE-0466 (MainActorデフォルト分離) と SE-0461 (デフォルト非分離非送信) の有効化が必要。これらの設定を有効にすると、extractSticker は呼び出し元のActorに留まり、可変状態へのアクセスが安全になる。これらの設定なしでは、このコードにはデータ競合がある——コンパイラがフラグを立てる。 @concurrent を使用するには: 1. コンテナとなる型に nonisolated をマークする 2. 関数に @concurrent を追加する 3. 関数がまだ非同期でない場合は async を追加する 4. 呼び出し側に await を追加する 重要な設計上の決定 決定 理由 ---------- ----------- デフォルトシングルスレッド 最も自然なコードはデータ競合がない。並行処理はオプトイン 非同期関数は呼び出し元のActorに留まる データ競合エラーを引き起こす暗黙のオフロードを排除 分離の一貫性 MainActor型が安全でない回避策なしにプロトコルに準拠できる @concurrent による明示的なオプトイン バックグラウンド実行は偶発的なものではなく意図的なパフォーマンス選択 MainActorデフォルト推論 アプリターゲットの定型的な @MainActor 注釈を削減 オプトイン採用 非破壊的な移行パス——機能を段階的に有効化 移行手順 1. Xcodeで有効化:ビルド設定のSwift Compiler > Concurrencyセクション 2. SPMで有効化:パッケージマニフェストで SwiftSettings APIを使用 3. 移行ツールを使用:swift.org/migrationを通じて自動コード変更 4. MainActorデフォルトから始める:アプリターゲットの推論モードを有効化 5. 必要な場所に @concurrent を追加:まずプロファイリングし、ホットパスをオフロード 6. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills affaan-m/swift-concurrency-6-2

View the source on GitHub

Browse the @skills marketplace