[flutter] shared_preferences 를 사용하여 애플리케이션 설정을 저장하는 방법은 무엇인가요?
애플리케이션 설정을 저장하기 위해 shared_preferences
패키지를 사용할 수 있습니다. 이 패키지는 앱이 종료되어도 데이터를 유지할 수 있도록 지원합니다.
먼저, shared_preferences
패키지를 pubspec.yaml
파일에 추가해야 합니다. 아래와 같이 dependencies
섹션에 패키지를 추가합니다:
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.6
그리고나서 pub get
명령을 실행하여 패키지를 다운로드합니다.
$ flutter pub get
이제 설정값을 저장하고 불러오는 코드를 작성해보겠습니다. 예시로 앱의 언어 설정값을 저장한다고 가정해보겠습니다.
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String selectedLanguage = '';
@override
void initState() {
super.initState();
loadLanguage();
}
void loadLanguage() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
selectedLanguage = prefs.getString('language') ?? '';
});
}
void saveLanguage(String language) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
selectedLanguage = language;
});
await prefs.setString('language', language);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Language App',
home: Scaffold(
appBar: AppBar(
title: Text('Language App'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Selected Language: $selectedLanguage',
style: TextStyle(fontSize: 20),
),
ElevatedButton(
onPressed: () {
saveLanguage('English');
},
child: Text('English'),
),
ElevatedButton(
onPressed: () {
saveLanguage('Korean');
},
child: Text('Korean'),
),
],
),
),
),
);
}
}
위의 코드는 selectedLanguage
변수에 저장된 언어 설정값을 불러오고, 변경할 수 있는 예시 앱입니다. saveLanguage
함수를 통해 설정값을 저장하고, loadLanguage
함수를 통해 설정값을 불러옵니다. 앱을 실행하면 설정값을 변경할 수 있는 버튼과 현재 저장된 설정값이 표시됩니다.
이와 같이 shared_preferences
패키지를 사용하여 애플리케이션 설정을 저장하고 불러올 수 있습니다. 자세한 내용은 shared_preferences
패키지의 공식 문서를 참조해주세요.