[flutter] shared_preferences를 이용하여 앱 내에서 사용자 설정을 유지하는 방법은?
앱을 사용하는 사용자에게 설정을 저장하고 유지하는 것은 중요합니다. Flutter에서는 shared_preferences 패키지를 사용하여 간단하게 앱 내에서 사용자 설정을 유지할 수 있습니다.
shared_preferences란?
shared_preferences는 안드로이드 및 iOS에서 앱 데이터를 영구 저장할 수 있는 패키지로, 사용자가 설정한 값이나 상태를 저장하고 다음에 앱을 다시 열 때 이를 가져와 사용할 수 있습니다.
flutter에서 shared_preferences 사용하기
먼저, shared_preferences 패키지를 pubspec.yaml
파일에 추가합니다.
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.7
그런 다음, 패키지를 가져와 사용자 설정을 저장하고 가져오는 간단한 예제를 살펴보겠습니다.
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// 사용자 설정 값에 대한 키 정의
static const String _isDarkModeKey = 'isDarkMode';
@override
Widget build(BuildContext context) {
return MaterialApp(
// 사용자 설정에 따라 다크 모드 적용
theme: _getTheme(),
home: Scaffold(
appBar: AppBar(
title: Text('앱 설정'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
_toggleDarkMode();
},
child: Text('다크 모드 토글'),
),
),
),
);
}
ThemeData _getTheme() {
return ThemeData(
brightness: _getIsDarkMode() ? Brightness.dark : Brightness.light,
);
}
bool _getIsDarkMode() {
SharedPreferences.getInstance().then((prefs) {
return prefs.getBool(_isDarkModeKey) ?? false;
});
}
void _toggleDarkMode() {
SharedPreferences.getInstance().then((prefs) {
bool isDarkMode = prefs.getBool(_isDarkModeKey) ?? false;
prefs.setBool(_isDarkModeKey, !isDarkMode);
});
}
}
이 예제에서는 shared_preferences를 사용하여 다크 모드 설정을 유지합니다. 사용자가 다크 모드 토글 버튼을 누를 때마다 해당 설정이 기억되고, 앱이 종료되어도 유지됩니다.
이제 당신의 앱에서 사용자 설정을 유지하는데 shared_preferences를 활용해 보세요!