はじめに
Flutter入門としてメモアプリを作成している際に、
データをローカルに保持しておく方法があることを学んだため、記事にしてみました。
前回のメモアプリの記事は、こちらです。
shared_preferences とは?
単純なデータ用のプラットフォーム固有の永続ストレージをラップします(iOS および macOS では NSUserDefaults、Android では SharedPreferences など)。
データは非同期的にディスクに永続化される可能性があり、書き込みが返された後にディスクに永続化されるという保証はないため、このプラグインを重要なデータの保存には使用しないでください。
サポートされるデータ型は int
、double
、bool
、String
とList<String>
です。
(Flutter公式ドキュメントより引用)
開発環境
- macOS Monterey 12.5
- Android Studio Chipmunk | 2021.2.1 Patch 1
- Flutter 3.0.1
事前準備
① pubspec.yaml に追記
pubspec.yaml に、shared_preferences
パッケージを追加します。
※2022/09 時点の最新バージョンが ^2.0.15
だったため、最新を設定しています。
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.15
② パッケージをダウンロード
下記コマンドを実行して、パッケージをダウンロードします。
$ flutter pub get
③ クラスにパッケージをインポート
shared_preferences
を使用したいクラスにパッケージをimportします。
import 'package:shared_preferences/shared_preferences.dart';
データの保存・更新
List型のデータ保存・更新には、setStringList
を使用します。
final prefs = await SharedPreferences.getInstance();
prefs.setStringList('memoList', memoList);
その他の型のデータ保存・更新時は以下を使用します。
- int型 :
setInt
- double型 :
setDouble
- bool型 :
setBool
- String型 :
setString
データの取得
List型のデータ取得には、getStringList
を使用します。
final prefs = await SharedPreferences.getInstance();
prefs.getStringList('memoList');
その他の型のデータ取得時は以下を使用します。
- int型 :
getInt
- double型 :
getDouble
- bool型 :
getBool
- String型 :
getString
データの削除
データの削除にはデータ型に関係なく、remove
を使用します。
final prefs = await SharedPreferences.getInstance();
await prefs.remove('memoList');
さいごに
クラウドサービスを使わないでローカルにデータを保存する shared_preferences の基本的な使い方を紹介しました。
iOSでいう NSUserDefaults、Androidでいう SharedPreferences のようなものです。
単純なデータ保存に向いているパッケージなので、重要なデータ保存時は別のクラウドサービスを使用した方が良さそうです!