モチベーション
- 基礎の基礎のおさらいをしようということで、いろんなステート管理手法を比較可能なように、すべて別ブランチにして1つのリポジトリに置いてみました
各種アーキテクチャでflutter_appを書き直してみたの巻
ChangeNotifierProvider
-
change_notifierブランチ
(masterとのdiff)- オーソドックスなアレ
ChangeNotifierProvider + BuilderでRebuildを局所化
-
change_notifier_and_builderブランチ
- 力技だがBuilderでRebuildスコープを縛るのはわりと簡単
- (change_notifierとのdiff)
- (masterとのdiff)
ValueNotifier + ValueListenableBuilder
どこでも安心のReaviceXシリーズ、RxDart(BehaviorSubject)
-
rxdart_behavior_subjectブランチ
- 安心と安全のRxDart
- StreamControllerだるいのがよくわかる
- (masterとのdiff)
RxDart + 生Provider
-
rxdart_and_raw_providerブランチ
- BehaviorProviderを生Providerに追い出した
- (masterとのdiff)
React界からの刺客、flutter_hooks
-
flutter_hooksブランチ
- 圧倒的記述量の少なさだが、全面書き換えっすね...
- (masterとのdiff)
最新鋭ステート管理、flutter_hooks + riverpods
-
flutter_hooks_and_riverpodsブランチ
- この記述量でRebuildスコープまで絞れる...人類の科学はここまで来た
- (masterとのdiff)
総評
- blocはオワコンなので放置
- あらためて眺めると、
flutter_hooks
なんかはたしかに便利ではあるのだが、Rebuildの最適化をするには、結局のところBuildContextと戦う点ではそこまで劇的な変更ではなさそう。 - まぁちょっとは便利になっているけど、結局はRxが強いのでは?
- 個人的には
ChangeNotifier
よりは生Provider
にValueStream
生やすほうが好き