【Flutter】アプリ内データの保存と読み込み【shared_preferences】

Flutter

Flutterでアプリ内の固有データを保存したり読み込みたい場合が多いと思いますが、Flutterのパッケージで簡単に(iOS/Android共通で)保存や読み込みができるので、その方法を解説します。

スポンサーリンク

データの保存/読み込み方法

shared_preferences パッケージを追加

shared_preferences パッケージを pubspec.yaml に追加します。

dependencies:
  flutter:
    sdk: flutter
  # ↓これを追加
  shared_preferences: ^0.5.6

ソースコードでインポートするファイルはこちら:

import 'package:shared_preferences/shared_preferences.dart';

shared_preferences パッケージは、iOSの「NSUserDefaults」、Androidの「SharedPreferences」をラップしたもので、基本的にこれらと同様の働きをします。

データの保存

SharedPreferences のインスタンスを取得してから、set〇〇 で保存します。

void savePrefs() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    await prefs.setString('sample string', 'test');
    await prefs.setBool('sample bool', true);
    await prefs.setInt('sample int', 100);
    await prefs.setDouble('sample double', 1.0);
}

保存する値は key & value 形式、async/await を使います。

データの読み込み

保存と同じく、SharedPreferences のインスタンスを取得してから、get(key) で読み込みます。

void loadPrefs() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    String dataString = prefs.get('sample string') ?? 'デフォルト値';
    bool dataBool = prefs.get('sample bool') ?? false;
    int dataInt = prefs.get('sample int') ?? 0;
    double dataDouble = prefs.get('sample double') ?? 0.0;
}

get(key) でデータが存在しない場合は null が返るので、上記では null の場合にデフォルト値を入れるような例を書いています。

パッケージドキュメント資料

shared_preferencesflutter.dev 公式のパッケージです。

公式ドキュメントはこちら:

shared_preferences | Flutter Package
Flutterpluginforreadingandwritingsimplekey-valuepairs.WrapsNSUserDefaultsoniOSandSharedPreferencesonAndroid.

コメント

タイトルとURLをコピーしました