[flutter] shared_preferences 를 사용하여 사용자의 최근 재생한 비디오 목록을 저장하는 방법은 무엇인가요?

앱에서 사용자가 최근에 재생한 비디오 목록을 저장하고 싶은 경우, shared_preferences 패키지를 사용하여 간단하게 구현할 수 있습니다. shared_preferences는 앱의 설정과 상태 데이터를 키-값 쌍으로 저장할 수 있는 간편한 API를 제공합니다.

1. shared_preferences 패키지 추가

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

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.5

그리고 패키지를 가져오기 위해 main.dart 파일에 다음과 같은 import 문을 추가해주세요:

import 'package:shared_preferences/shared_preferences.dart';

2. 비디오 목록 저장 및 불러오기

이제 비디오 목록을 저장하고 불러오는 기능을 구현해보겠습니다. 아래의 코드는 간단한 예제로, 최근 3개의 비디오만 저장하고 사용자가 추가로 재생한 비디오를 최신순으로 유지합니다.

// 비디오 목록 저장
Future<void> saveRecentVideos(List<String> videos) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  // 최근 3개의 비디오만 저장
  prefs.setStringList('recent_videos', videos.take(3).toList());
}

// 비디오 목록 불러오기
Future<List<String>> getRecentVideos() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  List<String> recentVideos = prefs.getStringList('recent_videos') ?? [];
  return recentVideos;
}

위의 코드에서는 SharedPreferences.getInstance()를 사용하여 SharedPreferences 인스턴스를 가져온 후, setStringList()를 사용하여 비디오 목록을 저장하고 getStringList()를 사용하여 비디오 목록을 불러옵니다. 비디오 목록은 최대 3개까지 유지되며, 최신순으로 정렬됩니다.

3. 사용 예시

이제 저장된 비디오 목록을 어떻게 사용하는지 살펴보겠습니다.

void main() {
  List<String> videos = ['video1', 'video2', 'video3', 'video4'];
  
  // 비디오 목록 저장하기
  saveRecentVideos(videos);
  
  // 비디오 목록 불러오기
  getRecentVideos().then((recentVideos) {
    print('최근 재생한 비디오 목록: $recentVideos');
  });
}

위의 예제에서는 비디오 목록 videos를 저장한 후, getRecentVideos()를 통해 최근 재생한 비디오 목록을 불러와서 출력합니다.

참고 자료