[flutter] Equatable을 활용하여 플러터 앱의 검색 기능 구현

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 라이브러리를 활용하여 검색 기능을 구현하는 방법을 보여주기 위한 것이며, 실제 앱에서 사용하기 전에 필요에 따라 적절히 수정해야 합니다.