Flutter開発では、イミュータブルなデータクラスを作成することがよくあります。これにより、不変性が保たれ、予測可能で安全なコードを書くことができます。Freezedは、Flutterアプリケーションで簡単にイミュータブルなデータクラスを生成するための有名なパッケージの一つです。この記事では、Freezedの基本的な使い方について説明します。
Freezedとは?
Freezedは、コード生成パッケージであり、Dart言語でイミュータブルなデータクラスを作成するのに役立ちます。これにより、手動で無駄なコードを書く必要がなくなり、効率的にコードを管理できます。
インストール
まず、プロジェクトにFreezedを導入します。pubspec.yaml
ファイルに以下の依存関係を追加します。
dependencies:
freezed_annotation: ^0.14.2
freezed: ^0.15.0
そして、パッケージを取得します。
flutter pub get
データクラスの作成
次に、Freezedを使用してイミュータブルなデータクラスを作成します。例として、ユーザー情報を持つUser
クラスを考えます。
import 'package:freezed_annotation/freezed_annotation.dart';
part 'user.freezed.dart';
@freezed
abstract class User with _$User {
const factory User({
required String id,
required String name,
required int age,
}) = _User;
}
@freezed
アノテーションをクラスに追加し、part 'user.freezed.dart';
をインポートします。これにより、Freezedが生成するコードと手動で記述する部分が分離されます。
コード生成
次に、ターミナルで以下のコマンドを実行して、Freezedがコードを生成するようにします。
flutter pub run build_runner build
これにより、user.freezed.dart
というファイルが生成されます。これには、Freezedが自動生成したコードが含まれています。
使用例
最後に、作成したデータクラスを使用する例を紹介します。
void main() {
final user = User(id: '1', name: 'John Doe', age: 25);
// イミュータブルな性質を活かして新しいインスタンスを作成
final updatedUser = user.copyWith(age: 26);
print(updatedUser); // User(id: 1, name: John Doe, age: 26)
}
これで、Freezedを使用して簡単にイミュータブルなデータクラスを作成し、コード生成の利点を享受することができます。
以上で、Freezedの基本的な使い方についての紹介を終えます。詳細な情報や高度な機能については、公式ドキュメントを参照してください。