[flutter] Equatable을 활용하여 플러터 앱의 필터링 기능 구현
플러터(Flutter) 앱을 개발하다 보면 종종 필터링 기능을 구현해야 할 때가 있습니다. Equatable을 사용하면 상태의 동등성(equality of states)을 비교하여 효율적으로 필터링 기능을 구현할 수 있습니다. 이 게시물에서는 Equatable을 활용하여 간단한 필터링 기능을 구현하는 방법을 알아보겠습니다.
Equatable이란?
Equatable은 값 객체(value object)의 동등성을 비교하는 데 사용되는 패키지입니다. Equatable을 이용하면 객체의 속성(property) 값을 기반으로 동일성을 비교할 수 있습니다.
Equatable 패키지 추가
우선 pubspec.yaml 파일에 Equatable 패키지를 추가해야 합니다.
dependencies:
equatable: ^2.0.3
이후 터미널에서 flutter pub get
명령어를 실행하여 패키지를 설치합니다.
Equatable을 사용한 필터링 기능 구현
다음은 Equatable을 이용하여 필터링을 구현한 예시 코드입니다.
import 'package:equatable/equatable.dart';
class Filter extends Equatable {
final String name;
final int minValue;
final int maxValue;
const Filter({
required this.name,
required this.minValue,
required this.maxValue,
});
@override
List<Object> get props => [name, minValue, maxValue];
}
void main() {
final filter1 = Filter(name: 'Price', minValue: 10, maxValue: 100);
final filter2 = Filter(name: 'Price', minValue: 10, maxValue: 100);
if (filter1 == filter2) {
print('Filters are equal');
} else {
print('Filters are not equal');
}
}
위 코드에서 Equatable을 이용하여 Filter
클래스를 선언하고, props
메서드를 오버라이드하여 동등성을 비교할 속성을 지정합니다. 그 후 동일한 조건의 필터를 비교하여 결과를 출력합니다.
Equatable을 활용하면 상태 동등성을 비교하는 작업을 보다 간편하게 처리할 수 있습니다. 필터링 등의 기능을 구현할 때 유용하게 활용할 수 있으니, Equatable에 대해 더 알아보고 프로젝트에 적용해 보시기를 권장합니다.
더 많은 정보는 Equatable 패키지 공식 문서를 참고하시기 바랍니다.