Flutterでの状態管理方法について雑に調べた時のメモです。
先に感想を書いておくと、
以下、有益そうな記事or動画リンクが主です。
Flutterで状態管理の仕方色々
- Flutter Architecture Samples
- Inherited Widget/Scoped Modelの他、ReduxやMVUといったパターンのサンプルもある
- (動画)Build reactive mobile apps with Flutter
- 2018年のGoogleI/Oで話されてた動画。BLoC Patterについても触れてる。
- これで話してたやつのコード。
- ↑の動画の補足とかをSpeakerがmediumに書いてるやつ
- (動画)FirebaseとFlutterを使う方法
- (動画)Flutter / AngularDart – Code sharing, better together (DartConf 2018)
Inherited Widget
- Flutterの標準ライブラリで提供されているWidget。setState + αといった感じの状態管理ができる。
- Using Flutter’s InheritedWidget to hold app state
- FlutterのWidgetのソース
- Inheriting Widgets
- Inherited widgetでカウンターを書き直した
Scoped Model
- Fuchsiaでも採用されている状態管理ライブラリ
- 状態変更をしたらnotifyListers()で通知し、変更された状態を利用する時はScopedModelDescendantでwrapして利用する感じ
- scoped_modelの実装例
- Scoped Modelでカウンターを書き直した
BLoC Pattern
- Flutterで使うStreamについて
- 登場人物
- StreamController
- Stream
- Sink
- StreamBuilder
- SinkはStreamにeventを流す
- Streamにeventが流れてくる
- StreamBuilderがStreamをlistenしてeventの通知を受けてcallbackを実行する
- StreamControllerはStream/Sinkを管理する親みたいな感じ
- 登場人物
- BLoC Pattern
- Reactive Programming - Streams - BLoC
- BLoCパターンとはなにか - FlutterとAngularの間でModelのコードを再利用する実践を通じての考察
- BLoC Patternでカウンターを書き直した
この先
実際にScopedModelあたりで大きめのアプリを書いてみる。
Android/iOSクロス開発フレームワーク Flutter入門
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2018/09/14
- メディア: 単行本
- この商品を含むブログを見る