[flutter] 플러터 바코드 스캔 앱에서 히스토리 삭제 기능 구현하기

플러터를 사용하여 바코드 스캔 앱을 개발하고 있다면, 사용자가 스캔한 히스토리를 삭제할 수 있는 기능을 추가하고 싶을 것입니다. 이 기능을 구현하기 위해 몇 가지 단계를 따라야 합니다.

1. 히스토리 저장 방법 선택

사용자가 스캔한 바코드의 히스토리를 저장할 수 있는 방법을 선택해야 합니다. 일반적으로는 로컬 데이터베이스를 사용하거나, 텍스트 파일이나 SharedPreferences와 같은 간단한 저장소를 활용할 수 있습니다. 각각의 방법에는 VorDB, SQLite, Moor와 같은 라이브러리를 사용할 수 있습니다.

2. 히스토리 표시

히스토리를 삭제하기 전에, 저장된 히스토리를 화면에 표시해야 합니다. ListView나 GridView와 같은 구성 요소를 사용하여 히스토리를 표시할 수 있습니다. 데이터베이스나 저장소에서 히스토리를 가져와서 이를 구성 요소에 바인딩하면 됩니다.

3. 삭제 기능 추가

사용자가 삭제 버튼을 누르면, 해당 히스토리를 삭제할 수 있도록 기능을 추가해야 합니다. 이를 위해 삭제 버튼을 각 히스토리 항목에 추가하고, 해당 항목을 선택했을 때 삭제 작업을 수행하도록 합니다. 데이터베이스나 저장소에서 해당 항목을 삭제하는 코드를 작성해야 합니다.

예제 코드

class BarcodeHistoryWidget extends StatelessWidget {
  final List<BarcodeItem> barcodeItems;
  final Function(BarcodeItem) onDelete;

 ...

  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: barcodeItems.length,
      itemBuilder: (context, index) {
        final item = barcodeItems[index];

        return ListTile(
          title: Text(item.name),
          subtitle: Text(item.date),
          trailing: IconButton(
            icon: Icon(Icons.delete),
            onPressed: () => onDelete(item), // 삭제 기능 실행
          ),
        );
      },
    );
  }
}

4. 히스토리 보존 기간 설정

너무 오래된 히스토리를 보존하지 않기 위해, 히스토리의 보존 기간을 설정할 수도 있습니다. 예를 들어, 30일 이상된 히스토리는 자동으로 삭제하도록 구현할 수 있습니다. 이를 위해 히스토리에 날짜 정보를 포함시키고, 앱이 실행될 때마다 보존 기간을 체크하는 코드를 추가해야 합니다.

결론

플러터 바코드 스캔 앱의 히스토리 삭제 기능을 구현하는 방법에 대해 알아보았습니다. 히스토리 저장 방법 선택, 히스토리 표시, 삭제 기능 추가, 히스토리 보존 기간 설정 등의 단계를 따라 구현할 수 있습니다. 이를 통해 사용자가 편리하게 바코드 스캔 히스토리를 관리할 수 있습니다.

참고 자료