[flutter] 바코드 스캐너 앱에 히스토리 기능 추가하기

바코드 스캐너 앱에 히스토리 기능을 추가하는 방법을 알아보겠습니다. 바코드 스캐너 앱은 사용자가 바코드를 스캔하고 스캔한 결과를 저장하는 기능을 제공합니다. 히스토리 기능을 추가하면 사용자들은 이전에 스캔한 바코드를 나중에 참조할 수 있게 됩니다.

1. 앱의 UI 설계

히스토리 기능을 추가하기 위해 앱의 UI를 수정해야 합니다. 일반적으로 히스토리를 보여주는 화면은 리스트 형태로 구성됩니다. 따라서 앱의 UI를 수정하여 리스트뷰를 표시할 수 있도록 설계합니다.

예를 들어, HistoryScreen 이라는 새로운 위젯을 생성하고, 이 위젯에는 바코드의 스캔 결과를 보여주는 리스트뷰를 구현합니다. 각 아이템은 스캔한 날짜와 바코드 정보를 표시합니다.

class HistoryScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('히스토리'),
      ),
      body: ListView.builder(
        itemCount: scanHistory.length,
        itemBuilder: (BuildContext context, int index) {
          var scanResult = scanHistory[index];
          return ListTile(
            title: Text(scanResult.barcode),
            subtitle: Text(scanResult.date.toString()),
          );
        },
      ),
    );
  }
}

2. 스캔 결과 저장 및 불러오기

바코드를 스캔한 결과를 저장하기 위해 scanHistory라는 리스트를 생성합니다. 바코드 스캔이 완료되면, 해당 결과를 ScanResult라는 모델 객체에 담아 scanHistory 리스트에 추가하면 됩니다.

class ScanResult {
  final String barcode;
  final DateTime date;

  ScanResult(this.barcode, this.date);
}

List<ScanResult> scanHistory = [];

class ScannerScreen extends StatelessWidget {
  // ...

  void _onBarcodeScanned(String barcode) {
    // 현재 시간을 가져옵니다.
    DateTime now = DateTime.now();

    // 스캔 결과를 저장합니다.
    ScanResult result = ScanResult(barcode, now);
    scanHistory.add(result);
  }

  // ...
}

스캔 결과를 불러오기 위해서는 HistoryScreen 위젯에서 scanHistory 리스트를 사용하여 스캔한 결과를 가져올 수 있습니다.

3. 히스토리 화면 호출

히스토리 화면을 호출하기 위해 앱의 적절한 위치에서 HistoryScreen 위젯을 호출합니다. 예를 들어, 메뉴 버튼을 누르면 HistoryScreen 위젯이 호출되도록 설정할 수 있습니다.

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '바코드 스캐너',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: ScannerScreen(),
      routes: {
        '/history': (context) => HistoryScreen(),
      },
    );
  }
}

이제 앱을 실행하고 바코드를 스캔하면, 스캔한 결과가 히스토리에 저장되고 히스토리 화면으로 이동할 수 있게 됩니다.

결론

이제 바코드 스캐너 앱에 히스토리 기능을 추가하는 방법을 알아보았습니다. 히스토리 기능은 사용자들이 이전에 스캔한 바코드를 나중에 참조할 수 있도록 도와줍니다. 이를 통해 앱의 사용성을 높일 수 있습니다.