반응형
안드로이드와 마찬가지로 Flutter에도 SharedPreference가 존재한다.
하지만, 다른 점도 존재하는데 어떤 점이 다른지 알아본다.
SharedPreference 플러그인 설치하기
다음 링크를 참조하거나
https://pub.dev/packages/shared_preferences/install
다음 코드를 pubspec.yaml에 추가한다.
dependencies:
shared_preferences: ^2.1.1
플러터의 SharedPreference 사용하기
공식 가이드를 보면 다음과 같이 되어있습니다.
// Obtain shared preferences.
final SharedPreferences prefs = await SharedPreferences.getInstance();
// Save an integer value to 'counter' key.
await prefs.setInt('counter', 10);
// Save an boolean value to 'repeat' key.
await prefs.setBool('repeat', true);
// Save an double value to 'decimal' key.
await prefs.setDouble('decimal', 1.5);
// Save an String value to 'action' key.
await prefs.setString('action', 'Start');
// Save an list of strings to 'items' key.
await prefs.setStringList('items', <String>['Earth', 'Moon', 'Sun']);
큰 특징으로는 전부 await를 사용하고 있다는 것입니다.
그렇기 때문에 함수 내에서 사용할 때는 async를 사용해야합니다.
또한 안드로이드와 다른 차이점은 SharedPreference에 이름이 없다는 것입니다.
안드로이드에는 SharedPreference에 이름을 지정해서 데이터의 종류를 구분해서 저장할 수 있었지만
플러터에서는 단 하나의 SharedPreference를 사용해서 모든 데이터를 관리해야 합니다.
함수에서 SharedPreference를 초기화할 때는 다음과 같은 방법으로 할 수 있습니다.
// 함수에 async를 사용해야한다.
Future initPrefs() async {
pref = await SharedPreferences.getInstance();
// 안드로이드와 달리 stringList 형태의 데이터를 저장 가능
final likedToons = pref.getStringList(prefsLikedWebToon);
if (likedToons != null) {
if (likedToons.contains(widget.id)) {
setState(() {
thisWebtoonIsLiked = true;
});
}
} else {
// 데이터 저장하기
pref.setStringList(prefsLikedWebToon, []);
}
}
참고로 SharedPreference를 사용해서 가져오는 모든 데이터는 nullable입니다.
반응형
'플러터(flutter)' 카테고리의 다른 글
플러터에서 androidManifest에 localProperties 값 대입하기 (0) | 2023.08.08 |
---|---|
플러터(flutter) - 온보딩 화면 만들기 (0) | 2023.06.03 |
플러터 기초 - PageRouteBuilder를 사용해서 화면 전환하기 (0) | 2023.05.14 |
플러터 기초 - HttpOverrides으로 userAgent 설정하기 (0) | 2023.05.13 |
플러터 기초 - ListView 위젯 사용하기 (0) | 2023.05.13 |
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
댓글