以下、コードの構成について考えることができるスレになってませんかね。
私は、
「Swift なら ViewModel を捨てることができる。」
そう思いながら Swift に入門しました。
🧑🏻💻 MVVM をやってみるきっかけ
なんとなく、SwiftData の雰囲気を見てると微妙な感じがしています。
いまいち @Query が、意図通りに、自在にならない。
ModelContext.fetch() など使ってみるといろんなことができるので、
@Observable クラスを使うといいかな、
と思いながら試していると、
Swift6 など将来的な話でそれはメインスレッド強制方向へ。
なので少し MVVM で考えてみよう、
MVC、MVP と WEB、スマホOSを経験してきた私がまとめてみたい。
🧑🏻💻 MVVM の考え方
概要は以下。
View 側からそれを構成するデータの変更を監視する、いわゆるObserver Pattern が中心にある。
めんどくさいので図で書く。
ユーザーの操作を受け付ける View から ViewModel に通知することで、
各 Repository のデータを変更する。
View 側ではそれを検知して勝手に更新する。
こまごま違いはあるがそれが大筋。
Repository というのは、MVVM でいうところの M(Model) と思ってよい。
🧑🏻💻 どうなのでしょうか
少しあれこれ公開されてる SwiftUI ベースのコードを見ながら思いました。
(更新中... ストックしておくと更新通知がきます)
🧑🏻💻 参考
