플러터 앱에서 장치(안드로이드 단말, iOS단말, web등)에 데이터를 로컬로 저장하는 기능을 구현하려고 합니다.
본격적으로 코드를 작성하기 전에, 데이터 저장에 필요한 패키지인 Shared preferences에 대해 알아보고 보도록 하겠습니다.
이번 포스트는 다음 내용을 다루고 있습니다.
- SharedPreferences 란
- SharedPreferences 사용하기(사용 메소드 정리)
- SharedPreferences 패키지 인스톨
SharedPreferences 란
SharedPreferences plugin을 사용하면 플러터 앱을 사용하는 장치에 데이터를 저장할 수 있습니다. pub.dev 페이지에서 shared_preferences 검색해서 해당 패키지 페이지에서 확인이 가능합니다.
platform에 나와있는것 처럼 Android, iOS, web, windows 등에서 사용이 가능합니다. SharedPreferences 플러그인은 앱이 설치된 운영체제에 따라 기술을 래핑하기 떄문에 다양한 플랫폼에서의 패키지 사용이 가능합니다.
SharedPreferences는 int, double, Booleans, String, List<String>과 같은 단순 데이터를 저장하는데 적합합니다. 데이터는 앱 내에 저장되므로 사용자가 앱을 제거하면 저장한 모든 항목도 삭제됩니다.
SharedPreferences 사용하기
SharedPreferences를 플러터 프로젝트에서 사용하는 단계를 살펴보겠습니다.
1. 인스턴스 생성
SharedPreferences sp = await SharedPreferences.getInstance();
먼저 SharedPreferences의 인스턴스를 생성해야 하며, getInstance 메소드를 호출하여 인스턴스를 가져옵니다. getInstance는 비동기식이므로 async 메소드에서 await를 사용하거나 then 콜백을 사용해야합니다.
2. 데이터 쓰기
//settter
await sp.setString('testKey', 'setter test');
데이터를 쓰기 위해 데이터 타입 별로 몇 가지 setter메소드가 있습니다. 예를 들어 setString은 문자열을 저장 합니다. setter계열의 메소드도 비동기식이므로 await나 then처리와 같은 비동기 처리가 필요합니다.
3. 데이터 읽기
//getter
String testString = sp.getString();
값을 읽기 위한 getter역시 데이터 타입 별로 존재 합니다. 예를 들어 getString은 키의 이름을 매개변수로 이용해 문자열을 가져옵니다. getter 는 비동기식이 아니므로 비동기 처리가 필요하지 않습니다..
4. 데이터 삭제
//delete
bool isDeleted = await sp.remove('testKey');
값을 삭제하려면 remove메소드를 사용할 수 있습니다. 이 메소드 역시 쓰기 작업의 일환이므로 비동기식으로 작동합니다.
SharedPreferences 읽기와 쓰기 메소드를 정리
데이터 타입 | 읽기(getter) | 쓰기(setter) |
int | getInt(key) | setInt(key, value) |
double | getDouble(key) | setDouble(key, value) |
bool | getBool(key) | setBool(key, value) |
String | getString(key) | setString(key, value) |
List<String> | getStringList(key) | setStringList(key, list) |
패키지 인스톨
SharedPreferences 플러그인을 사용하기 위해서는 프로젝트내에 패키지를 인스톨 해야합니다.
패키지 설치 페이지에서 패키지 이름과 버전이 포함된 문자열을 복사하여, pubspec.yaml 파일의 종속성 섹션에 붙여 넣습니다.
종속성을 추가하면 vscode에서 자동으로 인스톨이 실행되지 않는다면 우측상단에 다운로드 버튼을 클릭해 주세요.
인스톨이 완료됐다면 패키지를 사용할 파일에 import를 해주면 됩니다.
import 'package:shared_preferences/shared_preferences.dart';
이제 패키지를 사용 준비가 끝났습니다.
다음 포스트에서 shared_preferences를 사용해서 데이터를 앱에 저정해 보도록 하겠습니다.
'프로그래밍 > Flutter' 카테고리의 다른 글
[Flutter] 17. 플러터 데이터 저장 앱 만들기2 (AlertDialog 다이얼로그 위젯 입력 받기) (0) | 2022.03.03 |
---|---|
[Flutter] 16. 플러터 데이터 저장 앱 만들기1 (SharedPreferences 헬퍼 클래스, FloatingActionButton 위젯) (0) | 2022.03.02 |
[Flutter] 14. 플러터 날씨 검색 화면 만들기 (0) | 2022.02.28 |
[Flutter] 13. 플러터 http get, OpenWeather, 비동기 처리 (0) | 2022.02.26 |
[Flutter] 12. 플러터 패키지(package) 추가하기 (0) | 2022.02.24 |
댓글