以下、コードの構成について考えることができるスレになってませんかね。
私は、
「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 ベースのコードを見ながら思いました。
(更新中... ストックしておくと更新通知がきます)
🧑🏻💻 参考