이거 진짜 대박입니다......ㅜㅜ!!
freezed는 code generator로 unions, pattern-matching, copy 기능을 제공해준다고 하네요!
실제로 pub 사이트의 index에 가보면 다양한 기능을 제공하고 있고, 계속 업데이트 되고 있네요..!
pub.dev/packages/freezed#index
기존에 code generation으로, json serializable 요 친구를 많이 썼었는데, Freezed가 좀 더 강력?한 느낌이 들고 앞으로 자주 사용할 듯 싶습니다.
freezed의 대한 설명은 코드팩토리님의 블로그에 잘! 정리 되어 있으니, 한번 확인하면 될 듯합니다.
blog.codefactory.ai/flutter/freezed/
--
기본적인 사용은, 다음과 같습니다.
@freezed
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
뿐만 아니라, toString, Equatable, copyWith까지 한꺼번에 제공해준다고 하니 꼭 문서 읽어보는 걸 추천한다!
--
서버로부터 serialization 해서 가져온 데이터 값들을 프로젝트에서 사용하다보면 property를 바꿔야하는 경우가 있는데,
copy가 간단하게 코드 몇줄로 제공되니 앞으로 freezed + json serializable로 해서 간결하게 사용 하면 될 듯하다!!
하지만, Union 기능은 강력한 건 알겠는데,, 현재 프로젝트에 도입하기엔 조금 힘들듯하다.
dio freezed 할 때 사용하면 괜찮을지도..?
'✏️ > Flutter' 카테고리의 다른 글
[flutter] dart packages - Decimal (intro, json serialize) (0) | 2021.05.13 |
---|---|
[flutter][ios] kakao_flutter_sdk 0.6.0 로그인 문제 (+ 네이버 로그인) - flutter 1.xx version (0) | 2021.05.13 |
[flutter][dart] map<T> method (0) | 2021.04.18 |
[flutter] CocoaPods install error - `.symlinks/plugins/~ (0) | 2021.04.15 |
[flutter] ios 프로젝트 설정 오류 - Runner config, CocoaPods (0) | 2021.04.15 |