[flutter] Equatable 클래스를 이용한 플러터 항목 추가와 삭제

플러터 앱을 개발하다 보면 자주 사용되는 작업 중 하나는 리스트에 항목을 추가하고 삭제하는 것입니다. Equatable 클래스를 사용하면 객체 간의 동등성을 쉽게 비교할 수 있어서 효율적으로 항목을 추가하고 삭제할 수 있습니다.

Equatable 클래스란?

Equatable 클래스는 객체의 동등성을 비교하기 위한 클래스로, Equatable을 구현한 클래스는 == 연산자로 두 객체가 동등한지를 비교할 수 있습니다. 이를 통해 리스트에 동일한 항목이 이미 있는지를 쉽게 확인할 수 있습니다.

Equatable 클래스를 이용한 항목 추가하기

아래는 Equatable 클래스를 이용하여 리스트에 항목을 추가하는 예제 코드입니다.

import 'package:equatable/equatable.dart';

class Item extends Equatable {
  final int id;
  final String name;

  Item(this.id, this.name);

  @override
  List<Object> get props => [id, name];
}

void main() {
  var itemList = <Item>[];
  var newItem1 = Item(1, "Item 1");
  var newItem2 = Item(2, "Item 2");

  if (!itemList.contains(newItem1)) {
    itemList.add(newItem1);
  }

  if (!itemList.contains(newItem2)) {
    itemList.add(newItem2);
  }

  print(itemList);  // [Item: 1, Item: 2]
}

위의 예제 코드에서 Equatable 클래스를 상속받은 Item 클래스의 props 메서드를 사용하여 id와 name이 동일하다면 두 객체가 동등하다고 판단합니다. 따라서 리스트에 이미 동일한 항목이 있는지를 확인하여 중복으로 추가되지 않도록 합니다.

Equatable 클래스를 이용한 항목 삭제하기

Equatable 클래스를 사용하여 리스트에서 항목을 삭제하는 예제 코드는 아래와 같습니다.

void main() {
  itemList.removeWhere((item) => item == newItem1);
  print(itemList);  // [Item: 2]
}

위의 예제 코드에서 removeWhere 메서드를 사용하여 조건에 해당하는 모든 항목을 삭제할 수 있습니다. Equatable 클래스를 이용하면 비교적 간단하게 항목을 삭제할 수 있습니다.

Equatable 클래스를 사용하면 리스트에 항목을 효율적으로 추가하고 삭제할 수 있어서 플러터 앱의 성능을 향상시킬 수 있습니다.

더 많은 정보를 찾고 싶다면 Equatable 라이브러리 문서를 참고해 보세요.