SlideShare a Scribd company logo
なぜ、riverpodを使う
のか?
JboyHashimoto
状態管理がされていない通常のパターン①
状態管理がされていない通常のパターン②
状態管理がされていない通常のパターン③
状態管理をしていない場合だと
①でモデルクラスを定義する
②でサービスクラスを使って、
Firestoreのフィールドにアクセスして、
Map型のデータを取得し
て、.toListでリストに変換して、postStreamで画面に描画できるようにします。
③では、サービスクラスのロジックを使って、モデルクラスで定義した、プロパティを使い、
Firestoreの
title、 bodyのフィールドを表示できるようにします。
結論を言うと、これでは書くコードが多くて、複雑になってしまいます。そこで、状態管理を導入すると、
ソースコードを短いコードで書けるようにして、メンテナンスしやすくしたり、コードを見やすくすることが
できます。
riverpodを使うとどうなるのか?
コードの可読性をあげることができます。今回は、
riverpod2.0で導入されたジェネレーターと呼ばれて
いるものを導入します。
これは、メソッドのようなコードを書いて、コマンドを実行すると、プロバイダーを自動生成してくれます。
Freezedを使用してモデルクラスを作る。
Freezedを使用すると、toJSON、
fromJSONを書かなくても、パッケージ
が自動で作ってくれます。人によって
は、toMap、fromMapと書いていたり
するし、私の今回書いたコードのよう
に、海外のソースコードを参考にしまし
たが、toJSON、fromJSONと同じ役割
をしているコードを書く必要がありま
す。
riverpodジェネレーターなるものを今回使用しました。メソッ
ドのようなものを定義して、コマンドを打つとファイルを自動
生成してくれます。
こんなものが自動生成されます!
コードを触ることはありません。
こちらは先ほどの画面を表示するコードと比べると簡潔に書
けています。見やすくなっていますね。
アプリを実行するとこんな感じで、全ての
データを取得して、画面に表示します。
ご清聴ありがとうございました

More Related Content

Similar to 状態管理を導入するとどうなるのか?.pdf

Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
 
jBOLT Ver3.2
jBOLT Ver3.2jBOLT Ver3.2
jBOLT Ver3.2skudoh
 
[Cloud OnAir] 機械学習はこうやる!準備と実際のプロセスをお見せします。 (LIVE) 2018年5月24日 放送
[Cloud OnAir] 機械学習はこうやる!準備と実際のプロセスをお見せします。 (LIVE) 2018年5月24日 放送[Cloud OnAir] 機械学習はこうやる!準備と実際のプロセスをお見せします。 (LIVE) 2018年5月24日 放送
[Cloud OnAir] 機械学習はこうやる!準備と実際のプロセスをお見せします。 (LIVE) 2018年5月24日 放送
Google Cloud Platform - Japan
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング
keki3
 
Rails3.2ってどう変わるの?
Rails3.2ってどう変わるの?Rails3.2ってどう変わるの?
Rails3.2ってどう変わるの?
Takafumi ONAKA
 
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
Tadahiro Ishisaka
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
Redmine導入しました(公開)
Redmine導入しました(公開)Redmine導入しました(公開)
Redmine導入しました(公開)
Hidekz Hara
 
makoto shing (stability ai) - image model fine-tuning - wandb_event_230525.pdf
makoto shing (stability ai) - image model fine-tuning - wandb_event_230525.pdfmakoto shing (stability ai) - image model fine-tuning - wandb_event_230525.pdf
makoto shing (stability ai) - image model fine-tuning - wandb_event_230525.pdf
Akira Shibata
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
Service Cloud Trailblazers #5
Service Cloud Trailblazers #5Service Cloud Trailblazers #5
Service Cloud Trailblazers #5
sfdc_sctb
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Recruit Technologies
 
Asakusa Enterprise Batch Processing Framework for Hadoop
Asakusa Enterprise Batch Processing Framework for HadoopAsakusa Enterprise Batch Processing Framework for Hadoop
Asakusa Enterprise Batch Processing Framework for Hadoop
Takashi Kambayashi
 
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as CodeTerraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as Code
Takahisa Iwamoto
 
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう  by SRA OSS, Inc. 日本支社 高塚遥[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう  by SRA OSS, Inc. 日本支社 高塚遥
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
Insight Technology, Inc.
 

Similar to 状態管理を導入するとどうなるのか?.pdf (16)

Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
jBOLT Ver3.2
jBOLT Ver3.2jBOLT Ver3.2
jBOLT Ver3.2
 
[Cloud OnAir] 機械学習はこうやる!準備と実際のプロセスをお見せします。 (LIVE) 2018年5月24日 放送
[Cloud OnAir] 機械学習はこうやる!準備と実際のプロセスをお見せします。 (LIVE) 2018年5月24日 放送[Cloud OnAir] 機械学習はこうやる!準備と実際のプロセスをお見せします。 (LIVE) 2018年5月24日 放送
[Cloud OnAir] 機械学習はこうやる!準備と実際のプロセスをお見せします。 (LIVE) 2018年5月24日 放送
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング
 
Rails3.2ってどう変わるの?
Rails3.2ってどう変わるの?Rails3.2ってどう変わるの?
Rails3.2ってどう変わるの?
 
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
Redmine導入しました(公開)
Redmine導入しました(公開)Redmine導入しました(公開)
Redmine導入しました(公開)
 
makoto shing (stability ai) - image model fine-tuning - wandb_event_230525.pdf
makoto shing (stability ai) - image model fine-tuning - wandb_event_230525.pdfmakoto shing (stability ai) - image model fine-tuning - wandb_event_230525.pdf
makoto shing (stability ai) - image model fine-tuning - wandb_event_230525.pdf
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
Service Cloud Trailblazers #5
Service Cloud Trailblazers #5Service Cloud Trailblazers #5
Service Cloud Trailblazers #5
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
Asakusa Enterprise Batch Processing Framework for Hadoop
Asakusa Enterprise Batch Processing Framework for HadoopAsakusa Enterprise Batch Processing Framework for Hadoop
Asakusa Enterprise Batch Processing Framework for Hadoop
 
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as CodeTerraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as Code
 
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう  by SRA OSS, Inc. 日本支社 高塚遥[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう  by SRA OSS, Inc. 日本支社 高塚遥
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
 

状態管理を導入するとどうなるのか?.pdf