Equatable은 두 객체가 동일한 속성 값을 가지는지를 확인하는 라이브러리입니다. 이를 활용하여 플러터(Flutter) 앱에서 검색 기능을 구현하는 방법을 알아보겠습니다.
Equatable 패키지 추가
먼저, equatable
패키지를 pubspec.yaml
파일에 추가합니다.
dependencies:
equatable: ^2.0.2
flutter pub get
을 실행하여 패키지를 설치합니다.
Equatable 활용
Equatable을 사용하기 위해 검색에 사용될 데이터 모델에 Equatable을 활용합니다. 예를 들어, 다음과 같이 Equatable을 활용하여 데이터 모델을 작성할 수 있습니다.
import 'package:equatable/equatable.dart';
class Item extends Equatable {
final String name;
final String description;
const Item({required this.name, required this.description});
@override
List<Object?> get props => [name, description];
}
위 코드에서 Item
클래스는 Equatable을 상속하고 props
메서드를 override하여 비교할 속성을 정의합니다.
검색 기능 구현
검색 기능을 구현할 때, Equatable을 활용하여 리스트나 배열에 있는 항목들을 비교할 수 있습니다. 아래는 ItemList
클래스에서 Equatable을 활용하여 검색 기능을 구현한 예시입니다.
import 'package:equatable/equatable.dart';
class ItemList extends Equatable {
final List<Item> items;
const ItemList(this.items);
List<Item> search(String keyword) {
return items
.where((item) =>
item.name.toLowerCase().contains(keyword.toLowerCase()) ||
item.description.toLowerCase().contains(keyword.toLowerCase()))
.toList();
}
@override
List<Object?> get props => [items];
}
위 코드에서 ItemList
클래스에서 검색 기능을 수행하는 메서드인 search
는 Equatable을 상속한 Item
의 리스트를 받아 해당 키워드를 포함하는 아이템들을 반환합니다.
결론
Equatable을 활용하여 플러터 앱에서 검색 기능을 구현할 수 있습니다. 이를 통해 간편하게 객체들을 비교하고, 검색 등과 같은 기능을 구현할 수 있습니다. Equatable을 통해 더 간편하고 효율적으로 앱을 개발할 수 있습니다.
참고: Equatable 패키지
위 예시 코드는 Equatable 라이브러리를 활용하여 검색 기능을 구현하는 방법을 보여주기 위한 것이며, 실제 앱에서 사용하기 전에 필요에 따라 적절히 수정해야 합니다.