본문 바로가기
프로그래밍/Flutter

[Flutter] 15. 플러터 데이터 저장 패키지 Shared preferences 사용하기

by 신나요 2022. 3. 1.

플러터 앱에서 장치(안드로이드 단말, iOS단말, web등)에 데이터를 로컬로 저장하는 기능을 구현하려고 합니다.

본격적으로 코드를 작성하기 전에, 데이터 저장에 필요한 패키지인 Shared preferences에 대해 알아보고 보도록 하겠습니다.

 

이번 포스트는 다음 내용을 다루고 있습니다.

  1. SharedPreferences 란
  2. SharedPreferences 사용하기(사용 메소드 정리)
  3. 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 사용해서 데이터를 앱에 저정해 보도록 하겠습니다.

댓글