Flutter

  • Flutterの状態管理パッケージ

  • Providerの種類

    • Provider: 基本
      • 外部からは変更できない値を公開できる基本的なProvider
      • 別のProvider(他の種類含む)の値を加工して別の値にして返すこともできる
        • ref.watch(provider).when
    • FlutureProvider: 非同期で取得した値を提供
      • 非同期関数の実行が終わったらWidgetを再構築する
      • 実行中・エラーのハンドリングもできる
    • StreamProvider: 徐々に値を返して再描画
    • NotifierProvider: 外部から変更可能な状態・状態操作メソッドを提供
    • AsyncNotifierProvider: 非同期な状態操作・ステート
    • ChangeNotifierProvider
  • Code Generation: About code generation | Riverpod

    • dev_dependenciesbuild_runner, riverpod_generatorが必要
    • dart run build_runner buildでコード生成
  • Consumer(Docs)でStatelessWidget内で使ったり、再構築の範囲を制限して最適化したりできる

  • リアクティブなUIを作りたいときはref.watch

  • 一度だけ値を取得したいときはref.read

  • 状態が変更されたときに何らかの動作をしたい場合はref.listen(購読ができる)

  • 特定の条件下で再構築したい場合はprovider.select(参考) 参考

  • https://riverpod.dev/ja/

  • Flutter x Riverpod でアプリ開発!実践入門