2
1

以下、コードの構成について考えることができるスレになってませんかね。

私は、

「Swift なら ViewModel を捨てることができる。」

そう思いながら Swift に入門しました。

🧑🏻‍💻 MVVM をやってみるきっかけ

なんとなく、SwiftData の雰囲気を見てると微妙な感じがしています。

いまいち @Query が、意図通りに、自在にならない。

ModelContext.fetch() など使ってみるといろんなことができるので、

@Observable クラスを使うといいかな、

と思いながら試していると、

Swift6 など将来的な話でそれはメインスレッド強制方向へ。

なので少し MVVM で考えてみよう、

MVC、MVP と WEB、スマホOSを経験してきた私がまとめてみたい。

🧑🏻‍💻 MVVM の考え方

概要は以下。

View 側からそれを構成するデータの変更を監視する、いわゆるObserver Pattern が中心にある。

めんどくさいので図で書く。

sc 2024-07-08 at 21.29.17.png

ユーザーの操作を受け付ける View から ViewModel に通知することで、

Repository のデータを変更する。

View 側ではそれを検知して勝手に更新する。

こまごま違いはあるがそれが大筋。

Repository というのは、MVVM でいうところの M(Model) と思ってよい。

🧑🏻‍💻 どうなのでしょうか

少しあれこれ公開されてる SwiftUI ベースのコードを見ながら思いました。

(更新中... ストックしておくと更新通知がきます)

🧑🏻‍💻 参考

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1