Open8

[Scrap] SwiftData を試す

へぶんへぶん

SwiftData

WWDC23 で発表された SwiftData というやつを試していきたい。
https://developer.apple.com/documentation/swiftdata

試す動機

アプリの要件によっては(例えば Mac/iOS 両対応のツールアプリ等)、CoreData を使ってiOSネイティブ開発したかった場合もあったが、CoreData なり CloudKit なりに対して複雑で面倒そうな印象を待っていた。
お手軽になっていることを期待しつつ、感触を確かめたい。

へぶんへぶん

せっかくなので、まずは WWDC の動画を見ていく。
https://developer.apple.com/videos/play/wwdc2023/10187/

へぶんへぶん
  • 見てる感じ、Swift 版の ORM って感じ
    • SwiftData で扱いたい struct に @Model をつける。
    • @Attribute で unique など DB っぽいが指定できる。
  • Model Cantainer というのが永続化層になるとのこと
  • ModelContext でデータの CRUD 全般を扱うとのこと
  • SwiftUI 側から簡単に使う方法が用意されてるっぽい。
へぶんへぶん
  • Preview とどう連携するのか気になるな
  • ObservbableObject に @Model つけれるの熱いかも
  • SwiftUI の modifier 使うと、View ごとに必要な分だけ modelContainer がつくられるらしい。
  • Core Data との連携の話がなくて少し不満があったけど、Document ベースのアプリを簡単に作れるのは結構便利かも。