여러분
앱개발하면서
데이터베이스 쓰기는 귀찮은데,
반영구적으로 자잘한 정보를 유지하고 싶으실 때 있으시죠?
브라우저라면 웹스토리지를 쓰면 됩니다.
하지만 Flutter로 개발 중인 앱이라면?
Shared Preferences를 써보자
https://pub.dev/packages/shared_preferences
https://flutter.dev/docs/cookbook/persistence/key-value
사용법도 아주 잘 정리 되어 있습니다.
사용법
int, double, bool, string, List<String> 타입의 데이터를 key:value 형식으로 저장할 수 있습니다.
간단하게 어떻게 저장하고 불러오고 삭제할 수 있는지 볼까요?
패키지 임포트(사용되는 파일마다 필요함)
import 'package:shared_preferences/shared_preferences.dart';
저장하기
final prefs = await SharedPreferences.getInstance();
prefs.setInt('age', 22);
prefs.setDouble('height', 175.5);
prefs.setBool('smoker', true);
prefs.setString('name', 'cyberschool');
prefs.setStringList('family', ['엄마', '아빠', '아들', '손자']);
//dart 코드입니다
불러오기
final prefs = await SharedPreferences.getInstance();
final age = prefs.getInt('age') ?? 90;
final height = prefs.getDouble('height') ?? 175.5;
final smoker = prefs.getBool('smoker') ?? false;
final name = prefs.getString('name') ?? '';
final family = prefs.getStringList('family') ?? [];
//dart 코드입니다.
삭제하기
final prefs = await SharedPreferences.getInstance();
prefs.remove('name');
아주 간단하지요?
저장, 삭제한 값은 어플리케이션을 종료한 뒤에도 유지됩니다.
Shared Preferences 관련 TMI
1. 이 기능은 안드로이드가 원조 맛집이라고 합니다. 로컬 데이터베이스 저장 관리 시스템을 이용해 원시타입 데이터만 소량 저장할 수 있도록 만들어 놓은 API라고 합니다.
2. IOS에서는 UserDefaults라고 부르고 쓴다고 합니다.
3. 진짜 중요한 정보는 백엔드에 잘 모셔놓아야 합니다. 완전히 영속성을 보장하지는 않는다고 합니다.
끝
댓글