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 패키지를 참조해주세요.