말랑한 하루
[Flutter] 기기 데이터 캐싱 본문
반응형
애플리케이션 사용자의 UX 향상을 위해 사용자가 검색했던 닉네임을 캐시하여 검색 전 보여주려한다.
API 이용 건수가 상당하지만, 일일 제한 횟수가 초과하게 된다면 애플리케이션 캐싱으로 관리해 볼 예정이고, 캐싱 데이터가 많아져 애플리케이션이 무거워진다면 backend 서버의 도움을 받고자 한다.
일단은 간단하게 닉네임 만을 대상으로 하고있으므로 관련 방법을 알아보자.
🥕 shared_preferences
※ reference : https://pub.dev/packages/shared_preferences
$ flutter pub add shared_preferences
$ flutter pub get
shared_preferences는 flutter.dev에서 관리하는 플러그인이다. 플랫폼별 영구 저장소를 래핑하며, 데이터는 비동기적으로 디스크에 유지된다.
모든 캐시 데이터가 그렇듯, 중요한 데이터를 저장하는 것은 지양한다.
🍒 객체 생성
SharedPreferences의 인스턴스를 가져온다.
// Obtain shared preferences.
final SharedPreferences prefs = await SharedPreferences.getInstance();
🍒 데이터 쓰기
setInt/setBool/setDouble/setString/setStringList 메소드를 지원한다.
// 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']);
🍒 데이터 읽기
// Try reading data from the 'counter' key. If it doesn't exist, returns null.
final int? counter = prefs.getInt('counter');
// Try reading data from the 'repeat' key. If it doesn't exist, returns null.
final bool? repeat = prefs.getBool('repeat');
// Try reading data from the 'decimal' key. If it doesn't exist, returns null.
final double? decimal = prefs.getDouble('decimal');
// Try reading data from the 'action' key. If it doesn't exist, returns null.
final String? action = prefs.getString('action');
// Try reading data from the 'items' key. If it doesn't exist, returns null.
final List<String>? items = prefs.getStringList('items');
🍒 항목 제거
// Remove data for the 'counter' key.
await prefs.remove('counter');
레퍼런스의 가이드라인을 활용하여 닉네임 리스트를 저장하고, 내가 원하는 화면에서 사용하면 된다.
반응형
'개발 > Flutter' 카테고리의 다른 글
[Flutter] (Error) flutter build apk Error Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.6.0. (0) | 2024.03.14 |
---|---|
[Flutter] Firebase Remote Config에서 Json데이터 활용하기 (0) | 2024.03.14 |
[Flutter] Firebase Cloud Firestore (0) | 2024.03.12 |
[Flutter] 애플리케이션 강제 업데이트 (0) | 2024.03.05 |
[Flutter] Firebase Remote Config (0) | 2024.03.04 |
Comments