[flutter] get_storage를 사용하여 플러터 앱에서 사용자가 체크한 항목 목록을 저장하는 방법을 알려주세요.

사용자가 플러터 앱에서 체크한 항목 목록을 저장하려면 get_storage 패키지를 사용할 수 있습니다. 이를 이용하면 앱에서 사용자의 데이터를 로컬로 저장하고 관리할 수 있습니다. 이제 이 방법을 알아보겠습니다.

Step 1: get_storage 패키지 추가

먼저, pubspec.yaml 파일에 get_storage 패키지를 추가합니다.

dependencies:
  get_storage: ^2.0.3

위와 같이 패키지를 추가한 후, 터미널에서 flutter pub get 명령어를 실행하여 패키지를 가져옵니다.

Step 2: get_storage 초기화

앱의 시작 부분에서 get_storage를 초기화해야 합니다. 일반적으로 main.dart 파일에서 초기화하는 것이 좋습니다.

import 'package:flutter/material.dart';
import 'package:get_storage/get_storage.dart';

void main() async {
  await GetStorage.init();
  runApp(MyApp());
}

Step 3: 항목 저장 및 불러오기

이제 사용자가 체크한 항목을 저장하고 불러오는 과정을 구현할 차례입니다. 사용자가 체크한 항목은 예를 들면 리스트 형태로 저장될 수 있습니다. 아래의 예시 코드에서는 get_storage를 이용하여 사용자가 체크한 항목 목록을 저장하고 불러오는 방법을 보여줍니다.

import 'package:flutter/material.dart';
import 'package:get_storage/get_storage.dart';

void main() async {
  await GetStorage.init();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  final GetStorage box = GetStorage();

  @override
  Widget build(BuildContext context) {
    // 저장된 목록 불러오기
    List<String> checkedItems = box.readList('checked_items') ?? [];

    // 사용자가 항목 체크 시 실행되는 함수
    void onItemChecked(String item) {
      if (checkedItems.contains(item)) {
        checkedItems.remove(item);
      } else {
        checkedItems.add(item);
      }
      // 변경된 목록 저장
      box.write('checked_items', checkedItems);
    }

    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('체크박스 목록 저장하기'),
        ),
        body: ListView(
          children: <Widget>[
            for (var item in ['항목 1', '항목 2', '항목 3'])
              CheckboxListTile(
                title: Text(item),
                value: checkedItems.contains(item),
                onChanged: (bool value) {
                  onItemChecked(item);
                },
              ),
          ],
        ),
      ),
    );
  }
}

이 코드는 get_storage를 사용하여 사용자가 체크한 항목 목록을 저장하고 불러오는 방법을 보여줍니다.

마치며

위의 예시를 참고하여 get_storage를 사용하여 플러터 앱에서 사용자가 체크한 항목 목록을 저장하는 방법을 구현할 수 있습니다. 사용자 데이터 저장에 효과적으로 활용할 수 있는 패키지입니다.