ActorでCoreDataをスレッドから解放しよう by ひめし

iOSDC Japan 2023
採択
2023/09/02 14:30〜
Track A
レギュラートーク(20分)

ActorでCoreDataをスレッドから解放しよう

himeshi_tech ひめし himeshi_tech

CoreDataはクライアントでデータベースを利用する際に欠かせないものです。
しかし、NSManagedObjectはスレッドセーフではなく、NSManagedObjectContext内で原則操作を行う必要がある等、スレッドを意識しながら利用する必要があります。
一方、Swift Concurrencyの普及が進み、データ競合はActorによって制御することが一般的になりました。CoreDataを利用する際も、実行スレッドを考慮することなく全てasyncで安全に操作したいものです。
しかし、CoreDataを実際にそのように利用した例は多くありません。
そこで本トークでは、CoreDataをスレッドを意識することなく利用するための設計方法を解説します。本トークによって、Swift Concurrencyを活用したより安全なCoreDataの利用方法を理解できるようになるでしょう。