앱의 로컬 저장소에 데이터를 간단하게 저장하고 불러오려면 shared_preferences 패키지를 사용할 수 있습니다.
shared_preferences에 대해 소개하겠습니다.
shared_preferences는 플러터에서 공식적으로 지원하는 패캐지입니다. 해당 클래스를 사용해서 저장한 값은 앱을 종료하고 다시 실행해도 데이터가 유지됩니다. 이는 shared_preferences가 앱의 로컬 저장소에 데이터를 저장하고, 이 데이터는 앱이 종료되어도 유지되기 때문입니다. 따라서 앱을 다시 실행할 때에는 이전에 저장한 데이터를 불러와 사용할 수 있습니다.
저 같은 경우 알림 기능을 on/off 상태를 관리하는 변수나 사용자의 지난 로그인 정보 등을 담는 용도로 사용합니다.
https://pub.dev/packages/shared_preferences
코드 예시
// SharedPreferences에서 데이터를 불러오는 메서드
_loadSavedText() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
_savedText = prefs.getString('savedText') ?? '';
});
}
// SharedPreferences에 데이터를 저장하는 메서드
_saveText() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('savedText', _controller.text);
}
Android , Ios의 로컬 값 저장
내부적으로 Key-Value 관리는 알아야 해야하며, 기존의 Android 쓰이는 SharedPreferences, IOS에서 쓰는 NSUserDefaults를 매핑했기 때문에 기존에 네이티브 앱에서 플러터앱으로 변환 할 때, 플러터에서 shared_preferences패키지를 통해서 IOS의 경우 NSUserDefaults에, Android 경우 SharedPreferences저장되어 있는 값을 꺼네서 마이그레이션할 수 있습니다.
마이그레이션이란?
- 특정한 데이터의 집합을 A 위치에서 B위치로 이동하는 것
- 만약 테이블의 컬럼에서 A랑 B가 있을 때 컬럼B를 가공해서 C라는 새로운 컬럼을 추가할 때, 해당 DB에 C를 만드는 작업을 하고, 데이터를 옮기는 작업 등 디비에 변화를 주는 작업을 의미함
secure_storeage를 활용하자 !
사용방법은 플러터의 shared_preferences와 굉장히 흡사한데, 내부적으로 저장하는 값들을 암호화해서 저장하는 기능이 있습니다.
Android - sharedPreferences 저장 방식
Android에서 sharedPreferences에 데이터가 저장이 될 때 XML에 파일의 형태로 저장됩니다. 일반적인 경우는 아니지만 누군가 핸드폰, PC를 해킹해서 해당 값을 참조를 하려고 하면 xml을 그대로 들여다볼 수 있기 때문에 정말 중요한 정보라면 sharedPreferences를 지양하고 secure_storeage를 사용해야 합니다.
IOS는 Plist 형식이다!
'Flutter' 카테고리의 다른 글
[Flutter] 플러터 - part 키워드 (0) | 2023.11.30 |
---|---|
[Flutter] 플러터 - 패키지 이름 바꾸기 (0) | 2023.11.27 |
[Flutter] 플러터 CocoaPods' output & CocoaPods could not find compatible versions for pod (1) | 2023.11.25 |
[Flutter] 플러터 .env 파일로 API 키 관리하기 (1) | 2023.11.21 |
[Flutter] 플러터 - http이용, API 호출하기 (0) | 2023.11.21 |