Flutter Freezed

문승훈·2023년 10월 6일

flutter Freezed

Freezed 를 사용하는 이유

Freezed 는 immutable 객체 방법에서 썼던 코드의 길이를 획기적으로 줄여 에러 발생을 최대한 억제 하고 가독성을 높이기 위해 사용을 하는것이다.

Freezed 특징

  • 불변(immuatable) 객체
  • 패턴 매칭 지원 (when)
  • fromJson(), toJson() 자동 생성
  • Sealed Class 생성 지원

immutable : 불변의 , 변경할 수 없는 이라는 뜻의 하나의 객체이다

import 'package:freezed_annotation/freezed_annotation.dart';

part 'post_data.freezed.dart';
part 'post_data.g.dart'; // 추가


(explicitToJson: true) // 추가
class PostData with _$PostData {
  const factory PostData({
    required String title,
    required String content,
    required String author,
    String? postId,
  }) = _PostData;

  factory PostData.fromJson(Map<String, dynamic> json) => _$PostDataFromJson(json);

  Map<String, dynamic> toJson() => _$PostDataToJson(this);
} 

이렇게 freezed 데이터 관리를 한다.

Freezed는 실제로 toJson 메서드를 자동으로 생성해주기 위해 json_serializable과 함께 작동합니다. 이를 사용하면 별도로 toMap을 구현하지 않고도 객체를 JSON으로 변환할 수 있습니다.

Freezed 의 역할 Json 과 직렬화 이다

profile
차기 GDE 개발자 문승훈

0개의 댓글