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
를 사용하여 사용자가 읽은 책 목록을 간단하게 저장하고 불러올 수 있게 되었습니다.