[flutter] shared_preferences 를 사용하여 사용자가 본 신문 기사의 조회수를 저장하는 방법은 무엇인가요?

Flutter에서 shared_preferences 패키지는 앱의 지속적인 상태를 유지하기 위해 사용자의 기기에 데이터를 저장할 수 있도록 도와줍니다. 사용자가 본 신문 기사의 조회수를 저장하기 위해 shared_preferences를 사용하는 방법을 살펴보겠습니다.

  1. shared_preferences 패키지를 추가합니다. pubspec.yaml 파일에 다음과 같이 패키지를 추가합니다:

    dependencies:
      shared_preferences: ^2.0.6
    
  2. shared_preferences 패키지를 import 합니다:

    import 'package:shared_preferences/shared_preferences.dart';
    
  3. 신문 기사의 조회수를 저장할 메서드를 작성합니다:

    Future<void> saveArticleViews(int views) async {
      SharedPreferences prefs = await SharedPreferences.getInstance();
      prefs.setInt('article_views', views);
    }
    

    saveArticleViews 메서드는 SharedPreferences.getInstance()를 사용하여 SharedPreferences 객체를 얻은 후, setInt 메서드를 사용하여 ‘article_views’라는 키에 조회수를 저장합니다.

  4. 신문 기사의 조회수를 불러오는 메서드를 작성합니다:

    Future<int?> loadArticleViews() async {
      SharedPreferences prefs = await SharedPreferences.getInstance();
      return prefs.getInt('article_views');
    }
    

    loadArticleViews 메서드는 SharedPreferences.getInstance()를 사용하여 SharedPreferences 객체를 얻은 후, getInt 메서드를 사용하여 ‘article_views’ 키에 저장된 값을 가져옵니다.

  5. 사용자가 신문 기사를 읽을 때마다 조회수를 업데이트합니다:

    void updateArticleViews() async {
      int? views = await loadArticleViews();
      if (views != null) {
        views += 1;
      } else {
        views = 1;
      }
      saveArticleViews(views);
    }
    

    updateArticleViews 메서드는 현재 조회수를 loadArticleViews를 통해 가져온 후, 조회수를 1 증가시킵니다. 조회수가 null인 경우 1로 초기화한 다음, saveArticleViews를 호출하여 조회수를 저장합니다.

  6. 신문 기사의 조회수를 사용하는 예시:

    void main() {
      updateArticleViews();
      int? views = loadArticleViews();
      print('조회수: $views');
    }
    

    메인 함수에서 updateArticleViews를 호출하여 조회수를 업데이트하고, loadArticleViews를 통해 조회수를 가져와 출력합니다.

이제 shared_preferences를 사용하여 사용자가 본 신문 기사의 조회수를 저장하는 방법을 알게되었습니다. 이 기능을 활용하여 사용자에게 더 편리한 경험을 제공할 수 있습니다.