[flutter] shared_preferences 를 사용하여 사용자가 읽은 책 목록을 저장하는 방법은 무엇인가요?

shared_preferences는 Flutter에서 사용자 데이터를 간단하게 저장하고 불러올 수 있는 패키지입니다. 이를 사용하여 사용자가 읽은 책 목록을 저장하는 방법을 알아보겠습니다.

1. shared_preferences 패키지 추가하기

먼저 pubspec.yaml 파일에 shared_preferences 패키지를 추가해야 합니다. 아래와 같이 dependencies 섹션에 추가해주세요.

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.8

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

2. 읽은 책 목록 저장하기

사용자가 책을 읽을 때마다 해당 정보를 shared_preferences에 저장합니다. 예를 들어, 다음과 같은 클래스를 생성하여 읽은 책 목록을 관리할 수 있습니다.

import 'package:shared_preferences/shared_preferences.dart';

class BookListManager {
  SharedPreferences _prefs;

  Future<void> init() async {
    _prefs = await SharedPreferences.getInstance();
  }

  List<String> getReadBooks() {
    final readBooks = _prefs.getStringList('read_books');
    return readBooks ?? [];
  }

  Future<void> addReadBook(String bookTitle) async {
    final readBooks = getReadBooks();
    readBooks.add(bookTitle);
    await _prefs.setStringList('read_books', readBooks);
  }

  Future<void> removeReadBook(String bookTitle) async {
    final readBooks = getReadBooks();
    readBooks.remove(bookTitle);
    await _prefs.setStringList('read_books', readBooks);
  }
}

위의 BookListManager 클래스에서는 shared_preferences를 사용하여 읽은 책 목록을 저장하고 불러오는 기능을 제공합니다. init 메소드를 호출하여 shared_preferences 인스턴스를 초기화하고, getReadBooks 메소드로 읽은 책 목록을 가져올 수 있습니다. addReadBook 메소드로 읽은 책을 추가하고, removeReadBook 메소드로 읽은 책을 삭제할 수 있습니다.

3. 읽은 책 목록 사용하기

위에서 생성한 BookListManager 클래스를 사용하여 읽은 책 목록을 저장하고 불러올 수 있습니다. 예를 들어, 다음과 같이 사용하면 됩니다.

final bookListManager = BookListManager();
await bookListManager.init();

// 읽은 책 추가
await bookListManager.addReadBook('Flutter in Action');

// 읽은 책 목록 가져오기
final readBooks = bookListManager.getReadBooks();
print(readBooks); // ['Flutter in Action']

// 읽은 책 삭제
await bookListManager.removeReadBook('Flutter in Action');

위의 예제에서 bookListManager 인스턴스를 생성하고 init 메소드를 호출하여 shared_preferences를 초기화한 다음, addReadBook으로 읽은 책을 추가하고 getReadBooks로 읽은 책 목록을 가져옵니다. 마지막으로 removeReadBook으로 읽은 책을 삭제할 수 있습니다.

이제 shared_preferences를 사용하여 사용자가 읽은 책 목록을 간단하게 저장하고 불러올 수 있게 되었습니다.

참고 자료