StatefulWidgetでいいじゃん

IMO

まとめ

AIにまとめられるのもアレなので、筆者によるまとめ。

  • MVVMがMVVMであるためにはDataBindingが重要だと思っている
    • ControllerでもPresenterでもなく、ViewModelと名乗るには DataBinding が必要だろうという立場
    • DataBinding がないViewModelは、State+LogicなのでControllerなのでは派
  • 宣言的UIを採用したフレームワークには DataBinding は不必要
    • 宣言的UIにおいて DataBinding をあえて実現する必要性はない
      • DataBindingxmlなどで記述したレイアウトとコード化した状態を結びつける技術の理解
    • 宣言的UIは「状態に応じたUI」を記述するので、 DataBinding で実現したかった状況を実現済みですよね派
  • AndroidのViewModelはFlutterにおいては過剰なケア
    • FlutterではWidgetが画面回転やConfiguration Changeで再生成されない
      • AAC ViewModelやJetpack ViewModelを導入しLifecycleやLiveData、StateFlowを採用する必要性が低い
    • ロジックをまとめるクラスとしてのViewModelと、Androidの課題を解決するクラスとしてのViewModelを区別したい派
  • ephemeral stateとapp stateがコード的に区別されていることが重要
    • JSON色付け係として、「あるロジックが複数のWidgetで繰り返し利用される」ケースを考えたい
      • 見た目に関わるものであれば、共通のWidgetにするのを検討したい
      • ロジックに関わるものであれば、Model層 (e.g. Repository)で処理を検討したい
    • 特定の用途のためのWidgetを作りたいのであれば、 StatefulWidget で事足りることも多い
      • app stateと接続するためにRiverpodを使っているなら、 ConsumerStatefulWidget で大抵実現できる

本文

<書きたくなったら書く>