Flutter의 Shared preferences 플러그인은 앱 내에서 간단한 설정, 사용자 프로필, 선호도 및 기타 작은 데이터 조각을 저장하는데 쓸 수 있는 패키지다. 즉, 앱 내부 디스크에 뭔가를 저장해놓고 기억하겠단 뜻이다.
(하지만, flutter 공식 사이트에 따르면, 디스크에 지속되리라는 보장이 없으므로 이 플러그인은 중요한 데이터를 저장하는 데 사용해서는 안 된다고 한다.)
오늘은 이 플러그인을 이용해서 내가 좋아요를 누른 게시글의 정보를 디스크에 저장해보려고 한다.
0. 핵심 개념 : get / set
Sharedpreferences 플러그인의 핵심적인 두 가지 메서드는 get , set 메서드다.
get은 저장된 데이터를 읽어오는 데 사용하고, set은 데이터를 저장하는 데 사용한다. 이 두 개를 이어주는게 key다.
A라는 key로 set메서드를 실행한 데이터에 대해 get메서드에서 A key를 기반으로 호출하면 가져올 수 있다.
1. 플러그인 install / import
pubspec.yaml 파일의 dependencies에 추가해주고, import를 해준다.
dependencies:
shared_preferences: ^2.2.3
import 'package:shared_preferences/shared_preferences.dart';
2. get / set 메서드를 이용해 저장하고 불러오는 메서드 선언
1)좋아요 여부/ 키를 담을 변수 선언
2)initState로 초기화
앱을 실행했을 때, 좋아요 여부를 load 해줄 함수를 initState에서 실행한다.
3)get으로 가져오기
데이터 저장 및 불러오기 작업에는 시간이 걸릴 수 있으므로 비동기로 SharedPreferences 인스턴스를 생성해주고, key에 해당하는 Boolean 값을 가져와서 _isLiked에 저장한다(없으면 false로)
4)set으로 저장하기
버튼을 클릭시 실행할 메서드를 선언해준다.
클릭시 setState를 통해 좋아요 → 좋아요 해제 , 좋아요 해제 → 좋아요 로 상태 변환 및 그에 따른 rebuild 작업을 수행하게 해주고, 해당 key에 대한 _isLiked 값을 저장한다.
전체코드 첨부합니다
끝.
읽어주셔서 감사합니다.
'Flutter' 카테고리의 다른 글
[Flutter] MaterialApp을 statefulwidget에서 쓰면 좋은 경우 (0) | 2025.01.29 |
---|---|
[Flutter] 공공 데이터 활용해서 앱 만들기 - api key 관련 문제 (0) | 2025.01.24 |
[Flutter] Firebase Firestore에서 데이터 가져오는 두 가지 방법 (0) | 2025.01.24 |
[Flutter] Flutter로 앱 만들때 알아놓으면 좋은 객체지향언어 키워드 (0) | 2025.01.24 |
[Flutter] Stream Builder에서 TypeError (Null check operator used on a null value) 가 뜨는 경우 해결법 (0) | 2025.01.23 |