본문 바로가기
CODE/Flutter

[Flutter] 앱 캐시 관리하기 Shared_preferences 패키지

by Nuridal_class 2024. 1. 3.
728x90
728x90

 앱 캐시 관리를 왜 하나?

개발을 하다보면 주로 회원가입, 로그인이나 어플 설정같은 부분들을
매번 서버에 저장해서 가져오는것은 너무 많은 트래픽을 잡아먹기 때문에
캐시와 비슷한 이것을 사용해서 따로 관리해두면 사용자별로 관리가 편하다
그래서! 아주 간편하게 해주는 패키지인 shared_preferences 를 어떻게 사용하는지 알아보겠습니다

 

 

Shared_preferences  란?

💡 키 - 값으로 데이터를 저장이 가능합니다
    디바이스 디스크에 데이터를 저장하는 기능을 제공합니다
📌 데이터가 지속된다는 보장이 없으니 중요한 데이터는 저장하는 것을 권장하지 않습니다
      (예를 들어 앱을 삭제한다면 디스크의 데이터는 다 사라질 것입니다)
다음은 프로젝트에서 아래의 명령어로 패키지를 설치해줍니다
flutter pub add shared_preferences
더 자세한 정보를 보고 싶으시면 아래의 페이지에서 확인 가능합니다
 

shared_preferences | Flutter Package

Flutter plugin for reading and writing simple key-value pairs. Wraps NSUserDefaults on iOS and SharedPreferences on Android.

pub.dev

 

 Shared_preferences 사용방법

아래의 함수를 주로 사용하는 것 같아서 따로 정리해두었습니다
소개된 함수로 들만 사용해도 충분히 될 것입니다 
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

//📲 모든 키(key)와 해당 값을 출력합니다.
Future<void> checkStoredValues() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.getKeys().forEach((key) {
    dynamic value = prefs.get(key);
    debugPrint('$key: $value');
  });
}

//📲 키에 해당하는 값만 가져옵니다.
Future<String?> getStoredValue(String key) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  return prefs.getString(key);
}

//📲 키에 해당하는 키와 값을 가져옵니다.
Future<Map<String, dynamic>> getAllStoredValues() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  Set<String> keys = prefs.getKeys();
  Map<String, dynamic> values = {};

  for (String key in keys) {
    values[key] = prefs.get(key);
  }

  return values;
}

//📲 키를 지정하고 값과 같이 저장합니다.
Future<void> saveStoredValue(String key, String value) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.setString(key, value);
}

//📲 키를 검색하여 해당 값을 삭제합니다.
Future<void> removeStoredValue(String key) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.remove(key);
}

//📲 모든 값을 삭제합니다.
Future<void> clearAllStoredValues() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  await prefs.clear();
}

오늘은 flutter shared_preference를 사용해

앱 캐시처럼 사용하는 편리한 패키지를 알아보았습니다

그럼! 코딩이 쉬워지는 그날까지!!

728x90
300x250