Flutter의 shared_preferences
패키지를 사용하면 사용자의 설정과 상태를 영속적으로 저장할 수 있습니다. 사용자가 선택한 메시지 톤을 저장하기 위해 shared_preferences
를 사용하는 방법에 대해 알아보겠습니다.
1. shared_preferences 패키지 추가하기
먼저, pubspec.yaml
파일에 shared_preferences
패키지를 추가해야 합니다. dependencies
섹션에 다음과 같이 패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.8
이후, 터미널에서 flutter pub get
명령어를 실행하여 패키지를 가져옵니다.
2. 메시지 톤 저장하기
이제, 사용자의 선택한 메시지 톤을 저장하는 코드를 작성해보겠습니다.
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class MessageToneSettingsPage extends StatefulWidget {
@override
_MessageToneSettingsPageState createState() => _MessageToneSettingsPageState();
}
class _MessageToneSettingsPageState extends State<MessageToneSettingsPage> {
String selectedTone = "";
@override
void initState() {
super.initState();
loadSelectedTone(); // 앱 실행 시 저장된 톤 불러오기
}
void loadSelectedTone() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
selectedTone = prefs.getString("selectedTone") ?? ""; // 저장된 톤 불러오기
});
}
void saveSelectedTone(String tone) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
selectedTone = tone;
prefs.setString("selectedTone", tone); // 톤 저장하기
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('메시지 톤 설정'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'선택한 톤: $selectedTone',
style: TextStyle(fontSize: 20),
),
SizedBox(height: 16),
RaisedButton(
onPressed: () {
saveSelectedTone("기본 톤");
},
child: Text('기본 톤 저장'),
),
RaisedButton(
onPressed: () {
saveSelectedTone("다른 톤");
},
child: Text('다른 톤 저장'),
),
],
),
),
);
}
}
위 코드는 MessageToneSettingsPage
라는 StatefulWidget을 생성하고, 사용자가 선택한 톤을 저장하고 불러오는 기능을 갖고 있습니다. 앱을 실행하면 사용자의 선택한 톤이 화면에 표시되며, “기본 톤 저장” 및 “다른 톤 저장” 버튼을 누르면 해당 톤이 저장됩니다.
3. 톤 불러오기
톤을 불러오기 위해 loadSelectedTone
메소드를 이용합니다. 이 메소드는 앱이 실행될 때 한 번 실행되며, SharedPreferences
에서 저장된 톤을 불러와 selectedTone
변수에 할당합니다. 만약 저장된 톤이 없을 경우 빈 문자열을 할당합니다.
4. 톤 저장하기
톤을 저장하기 위해 saveSelectedTone
메소드를 사용합니다. 이 메소드는 톤을 받아와 SharedPreferences
에 저장한 후, selectedTone
변수에 할당합니다.
위 코드를 적용하여 사용자의 선택한 메시지 톤을 저장하고 불러올 수 있습니다. shared_preferences
패키지는 Flutter 애플리케이션에서 간단하게 설정 및 상태를 저장하는 데 유용한 도구입니다.
더 자세한 내용은 shared_preferences 패키지 문서를 참조하시기 바랍니다.