Flutter 상태관리 with freezed
소개
Flutter에서 State를 생성할 때, 방법으로 Bloc에서 추천하는 Equatable을 사용해왔다. 하지만 개발 편의성과 copy, toString override, json 변환 등 여러 기본 기능을 활용하여 개발 속도를 단축하고자 Freezed를 도입하게 되었다. 이번 내용은 Flutter freezed의 기본 활용법을 정리한 내용이다.
Freezed란?
Dart는 잘 만들어진 언어로 활용하기 좋지만, Model을 정의할 때는 조금 귀찮아질 수 있다. 간단하게만 생각해보아도 모델을 생성하기 위해서는 아래의 과정을 수행해야 한다.
- 생성자(constructor) 와 속성(properties) 정의
toString
,operator ==
,hashCode
재작성(override)copyWith
함수를 통해 객체를 복제하는 방법 구현- 직렬화(serialization), 역직렬화(deserialization) 처리
이를 매번 생성하기 위해서는 불필요한 반복 작업이 발생하며, 이는 실수로 인한 오류를 낳고 코드를 한눈에 알아보기도 힘들다. 따라서 Freezed는 최소한의 코드만 작성하여 이에 대한 상세 구현은 분리해두어 선언형 프로그래밍을 통해 사용자가 모델 정의에만 집중할 수 있도록 해준다.
Before | After |
---|---|
![]() | ![]() |