
Flutterのプラグイン「Riverpod」の基本的な情報を学習します
flutter の riverpod の1.0.0と、講座とのソースの差異を学習します
Flutterのプラグイン「Riverpod」をプロジェクトにインストールします
flutter_riverpod 1.0.3でプラグイン同士の整合性がとれないという報告を頂いたので、調査し、整合性のとれるバージョンを使用したpubspec.yamlを作成しました
Flutterのプラグイン「Riverpod」が使用できるようにStatefulWidgetをConsumerWidgetにします
タイトル用のProviderを作成します
メッセージ用のProviderを作成します
Flutterのプラグイン「Riverpod」の基本である状態管理のできるStateProvierを使って、カウンターを実装します
Flutterのプラグイン「Riverpod」のConsumerをなぜ使うか学習します。
Widget Treeの再構築の範囲を狭めるために、Flutterのプラグイン「Riverpod」のConsumerを実装します。
Flutterのプラグイン「Riverpod」のreadを学習します。
Flutterのプラグイン「Riverpod」のConsumerStatefulWidgetを使って、全体を書き換えます
Riverpodのreadを使用したときのアプリのWidget再構築の挙動を確認します
Riverpodのreadを使用したときのアプリのWidget再構築の挙動確認用のソースコードです。
MVVMパターンの基礎知識を学習します
プロジェクトにMVVMパターンで書き換える前に、カウントダウンボタンも追加します
Flutterのプラグイン「freezed」の基礎知識と設定方法を学び、データクラスを作る準備をします
Flutterのプラグイン「freezed」を使って、データクラスを作成します
Flutterのプラグイン「Riverpod」のStateProviderに作成したデータクラスを使います
Flutterのプラグイン「Riverpod」のStateProviderは、オブジェクトのデータ変更だけでは変更が検知できないことを学びます
Flutterのプラグイン「Riverpod」のselectの機能を学習します
MVVMパターンを実現するためにModelのクラスを作成します
MVVMパターンを実現するためにModelのクラスの初期値をテストします
ポリモフィズムを使って、機能についてのクラスを作成します
ロジックが簡単に追加できることの例として、SharedPreferenceにデータを保存する処理を追加します
riverpodの FuturePrividerを使って作成するアプリの説明をします
riverpod のFuturePrividerを使うために必要なプラグインを設定します
riverpod のFuturePrividerで取り扱うデータクラスを作成します
riverpod のFuturePrividerで取り扱うデータクラスをテストします
riverpod のFuturePrividerで取り扱うデータクラスをテストします
Flutterで riverpod のFuturePrividerを表示する画面を作成します
Flutterで riverpod のFuturePrividerを定義します
Flutterで riverpod のFuturePrividerを表示するため、TextFieldへの入力をStateProviderに渡します
Flutterで riverpod のFuturePrividerから、データのみ表示します。データ読み込み中、失敗時は固定メッセージを表示します
Flutterで riverpod のFuturePrividerから、データを表示します。
Flutter x Riverpod で FutureProvider に設定された郵便番号に紐付く住所の一覧を全て表示するようにします
ここからriverpodのバージョンが1.0.0に変更されますので、説明をします
FlutterのriverpodのStreamProviderでFirestoreにデータを入れるためのDAO(Data Access Object)を作成し、データが入っていることを確認する
Flutterでアプリの作成をしてます!以前はsetStateやBLocで状態管理してアプリを開発していました。しかし、どうにも拡張性が低くなって、メンテが難しくなってしまいました。
もっと便利な物はないかと調べると、最近は日本ではRiverpodが主流、ということで、使用してみました。WEBページなどで調べて、一通りマスターしましたが、どうにも綺麗に書けません。JavaFX(JavaのGUIライブラリ)では、もっと気持ちよく書けてたのに!ということで、MVVMパターンを使えば、モデルとビューをうまく切り分けられないかと試行錯誤しました。結果、いい感じにまとめることができました!
この講座では、Riverpodの基本的な使用方法を勉強します。それだけでなく、Riverpodを使用して、MVVMパターンを実現し、ロジックとビューを切り離し、メンテしやすい実装方法を学習します。ロジックとビューを切り離すことは、それぞれ実装できるだけがメリットではありません。それぞれでテストすることが可能になりました。Unit Test、Widget Test、Flutter Golden Testを使用して、内部的にも、外観的にもテストする方法も紹介してます。外からデータを与えたり、Mockを使うテスト手法も紹介してます。
またFirebaseのFirestoreからデータを追加し、riverpodで表示する方法や、WebAPIからのデータをriverpodで表示する方法も分かります。
Riverpod初心者の方はもちろん、中級者の方(ご意見、お待ちしてます)にも参考になると思います!ソースは全て閲覧可能ですので、ご自身の開発に役に立ててください!一緒に綺麗なソースを書いていきましょう!
【履歴】
2021/11/07 riverpod 1.0.0のリリースに伴い、講座との差異の講座を追加しました。ソースは修正しました。
2022/03/26 FutureProviderを使って、MVVMを実装する方法を更新しました。