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

Flutter에서 사용자가 쓴 게시물 목록을 저장하기 위해서는 shared_preferences 패키지를 사용할 수 있습니다. 이 패키지는 안드로이드와 iOS에서 간단한 키-값 쌍을 로컬에 영구적으로 저장하고 가져올 수 있는 방법을 제공합니다.

단계 1: shared_preferences 패키지 추가하기

먼저 pubspec.yaml 파일에서 shared_preferences 패키지를 추가해야 합니다. 다음과 같이 dependencies 항목에 추가하고 저장하세요.

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^0.5.12+4

그런 다음 터미널에서 flutter pub get 명령어를 실행하여 패키지를 다운로드합니다.

단계 2: 저장 및 불러오기

사용자의 게시물 목록은 List 형식으로 저장될 것이므로, shared_preferences에 해당 List를 문자열로 변환하여 저장하고 불러오는 방법을 알아보겠습니다.

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

// 게시물 관리 클래스 정의
class PostManager {
  static const String _kPostListKey = 'post_list'; // 게시물 목록 키

  // 게시물 목록을 shared_preferences에 저장
  static Future<void> savePosts(List<String> posts) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    await prefs.setStringList(_kPostListKey, posts);
  }

  // shared_preferences에서 게시물 목록을 불러옴
  static Future<List<String>> loadPosts() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    List<String> posts = prefs.getStringList(_kPostListKey) ?? [];
    return posts;
  }
}

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('게시물 저장 예제'),
        ),
        body: Center(
          child: RaisedButton(
            child: Text('저장하기'),
            onPressed: () async {
              List<String> posts = ['첫 번째 게시물', '두 번째 게시물', '세 번째 게시물'];

              await PostManager.savePosts(posts);
              print('게시물 목록이 저장되었습니다.');
            },
          ),
        ),
      ),
    );
  }
}

위의 예제에서는 PostManager 클래스를 정의하여 게시물 목록을 저장 및 불러오는 기능을 수행합니다. savePosts 메서드는 List를 받아 shared_preferences에 저장하고, loadPosts 메서드는 저장된 게시물 목록을 불러옵니다. main() 함수에서는 예시로 게시물 목록을 저장하는 동작을 수행하는 버튼을 생성합니다.

이제 앱을 실행하고 ‘저장하기’ 버튼을 누르면 게시물 목록이 shared_preferences에 저장되고, 터미널에도 ‘게시물 목록이 저장되었습니다.’ 메시지가 출력됩니다.

이것으로 Flutter에서 shared_preferences를 사용하여 사용자가 쓴 게시물 목록을 저장하는 방법을 알아보았습니다. 자세한 내용은 shared_preferences 패키지를 참조해주세요.