Skip to content

karamage/flutter_state_notifier_freezed_sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

state_notifier_example

A new "state_notifier + freezed" Flutter project.

概要

state_notifier + freezed を使った、カウンターアプリのサンプルプログラムです。

state_notifier について

Flutterで、状態管理のパターンとして、以下のものがよく使われています。

  • setState(StatefulWidget)
  • Redux
  • BLoC(Stream)
  • provider(ChangeNotifier)

現在、Flutterの状態管理においてベストプラクティスは、providerを使うことです。 Google公式においても、providerの使用を推奨しています。(Pragmatic State Management in Flutter (Google I/O'19)) state_notifierは、providerをより使いやすくコードをスッキリと楽に書けるようにしてくれるパッケージです。

従来のproviderパターンにおいて、ChangeNotifierを使ってゴリゴリとコードを書いていたのですが、コードが少々冗長になり、 Widget階層が深くなりがちな問題があります。

state_notifierベースでproviderのコードを書くと、 ChangeNotifierを使用した場合よりコードがスッキリし、 コードを書いていて気持ちが良いです。

私は、これまでChangeNotifierベースでコードを書いていたのですが、 これからはstate_notifierベースに書き換えていこうと思います。

freezed について

freezedパッケージは、イミュータブルなデータモデルを作成するのに使います。 state_notifierでは、State(状態)をイミュータブルなデータモデルとして扱います。 state_notifierとfreezedは相性が良く、セットで使うのが推奨されます。 freezedを使うと、StateにcopyWith(clone)メソッドが自動的に生えるので、便利です。

freezedはコードを自動生成します。その際、build_runnerを使用します。

freezed 自動生成ファイル

freezed の自動生成ファイルを更新する際は、 ターミナルで以下のコマンドを叩いてビルドしてください。

flutter pub pub run build_runner build

Flutter Getting Started

This project is a starting point for a state_notifier + freezed Flutter application.

A few resources to get you started if this is your first Flutter project:

For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

About

Flutterでstate_notifier と freezed 使うときのサンプル

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published