Flutter - Freezed
参考資料
なんのために使うか
- Dart では多くのオブジェクトが immutable であり、多くの利点がある。
- その反面、mutable なオブジェクトを扱うのは大変。その大変さを軽減するためのライブラリである。
何ができるか
- アサーション
- デフォルト値の設定
- 遅延初期化
- deprecated の指定
- toString
- hashCode
==
(すべてのプロパティが等しいか)- CopyWith(既存オブジェクトの一部のプロパティのみを変更して新しく作成)
- FromJson/ToJson
インストール
# pubspec.yaml
dependencies:
# freezedのアノテーションを利用可能にする
freezed_annotation:
dev_dependencies:
# コードジェネレータのランナー
build_runner:
# コードジェネレー タ
freezed:
使い方
// main.dart
// パッケージのインポート
import 'package:flutter/foundation.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
// 自動生成されるコードを読み込む
part 'main.freezed.dart';
// モデルの宣言(_$Personと_Personは後で自動生成されるクラスのこと)
class Person with _$Person {
factory Person({
String? name,
int? age,
}) = _Person;
}
// 使うとき
var person = Person(name: 'Remi', age: 24);
print(person.name); // Remi
print(person.age); // 24