スレッドセーフな永続化のための Swift Actor Swiftのactorを使用してスレッドセーフなデータ永続化レイヤーを構築するパターン。メモリキャッシュとファイルバックドストレージを組み合わせ、actorモデルを活用してコンパイル時にデータ競合を排除する。 起動条件 Swift 5.5以降でデータ永続化レイヤーを構築する場合 共有可変状態へのスレッドセーフアクセスが必要な場合 手動の同期(ロック、DispatchQueue)を排除したい場合 ローカルストレージを持つオフラインファースとアプリを構築する場合 コアパターン Actorベースのリポジトリ Actorモデルはシリアライズされたアクセスを保証する——コンパイラによって強制されるデータ競合なし。 使い方 Actorの分離により、すべての呼び出しは自動的に非同期になる: @Observable ViewModel との組み合わせ 重要な設計上の決定 | 決定 | 理由 | |----------|-----------| | Actorを使用(クラス + ロックではなく) | コンパイラによって強制されるスレッド安全性、手動同期不要 | | メモリキャッシュ + ファイル永続化 | キャッシュからの高速読み取り、ディスクへの永続的な書き込み | | 初期化時の同期ロード | 非同期初期化の複雑さを回避 | | IDをキ…