[flutter] Equatable을 활용하여 플러터 앱의 검색 결과 필터링하기

이번 포스트에서는 Equatable 패키지를 활용하여 플러터(Flutter) 앱의 검색 결과를 필터링하는 방법에 대해 알아보겠습니다. Equatable은 객체 비교를 위한 편리한 도구로, 특히 검색 결과 필터링과 같은 상황에서 유용하게 활용될 수 있습니다.

Equatable이란?

Equatable은 Dart 언어에서 두 개의 객체를 비교하는 데 사용되는 패키지입니다. 이 패키지를 사용하면 객체의 내용을 비교하는 메소드를 쉽게 생성할 수 있습니다. 이를 통해 객체의 동등성을 판단하는 과정을 단순화할 수 있습니다.

Equatable 패키지 설치하기

Equatable 패키지를 사용하기 위해, 먼저 pubspec.yaml 파일에 다음과 같이 의존성을 추가합니다.

dependencies:
  equatable: ^2.0.2

의존성을 추가한 후에는 터미널에서 flutter pub get을 실행하여 패키지를 설치합니다.

Equatable을 활용한 검색 결과 필터링

검색 결과를 필터링하기 위해 우선 Equatable을 활용하여 검색 결과 모델 클래스를 만들어보겠습니다.

import 'package:equatable/equatable.dart';

class SearchResult extends Equatable {
  final String title;
  final String description;

  SearchResult({
    required this.title,
    required this.description,
  });

  @override
  List<Object> get props => [title, description];
}

위의 코드에서는 Equatable 클래스를 상속받은 SearchResult 클래스를 정의하고, Equatable의 props 메소드를 오버라이딩하여 객체의 속성을 정의합니다.

이제 검색 결과를 필터링하는 메소드를 구현해보겠습니다.

List<SearchResult> filterResults(List<SearchResult> results, String filterText) {
  return results.where((result) {
    return result.title.toLowerCase().contains(filterText.toLowerCase()) ||
        result.description.toLowerCase().contains(filterText.toLowerCase());
  }).toList();
}

위의 코드에서는 filterResults 메소드를 통해 입력된 검색어(filterText)에 따라 결과를 필터링합니다.

Equatable 패키지를 활용하여 검색 결과를 필터링하였으며, 검색 기능을 향상시키기 위해 Equatable을 적극적으로 활용할 수 있습니다.

Equatable 패키지에 대해 더 알고 싶다면 공식 문서를 참고해보세요.

이상으로 Equatable을 활용하여 플러터 앱의 검색 결과를 필터링하는 방법에 대해 알아보았습니다. 도움이 되었기를 바라며, 감사합니다.

관련 참고자료: