Flutter/Package

[Flutter] Freezed

찌김이 2022. 7. 22. 15:49
728x90
반응형

Freezed 는 data class 에서 필요한 기능들을 제공해주는 매우 유용한 라이브러리 입니다.

 

freezed | Dart Package

Code generation for immutable classes that has a simple syntax/API without compromising on the features.

pub.dev

좌측의 코드를 Freezed 로 우측처럼 줄일 수 있다

 

pubspec.yaml 

dependencies:
  freezed_annotation: ^2.1.0

dev_dependencies:
  build_runner: ^2.2.0
  freezed: ^2.1.0+1
  json_serializable: ^6.3.1

 

Class 작성

import 'package:freezed_annotation/freezed_annotation.dart';

part 'foo.freezed.dart';

part 'foo.g.dart';

@freezed
class Foo with _$Foo {
  const factory Foo({
    required int id,
    required String title,
    @Default(true) bool isChecked,
  }) = _Foo;

  factory Foo.fromJson(Map<String, dynamic> json) => _$FooFromJson(json);
}

 

  • 터미널에 아래의 명령어를 넣어주면 freezed 관련 파일이 생성됩니다.
flutter pub run build_runner build

 

  • 빌드가 끝난 후에도 에러표시가 뜬다면 터미널에 flutter pub get 명령어를 넣어주시면 해결됩니다.

 

  • Freezed 적용이 완료되면 여러 기능을 사용할 수 있는 것을 확인할 수 있습니다.

 

  • 안드로이드 스튜디오에서는 플러그인으로 LiveTemplete 를 제공하고 있습니다.

 

728x90
반응형