LoginSignup
3
1

More than 1 year has passed since last update.

【Flutter】shared_preferencesの基本的な使い方

Posted at

はじめに

Flutter入門としてメモアプリを作成している際に、
データをローカルに保持しておく方法があることを学んだため、記事にしてみました。

前回のメモアプリの記事は、こちらです。

shared_preferences とは?

単純なデータ用のプラットフォーム固有の永続ストレージをラップします(iOS および macOS では NSUserDefaults、Android では SharedPreferences など)。
データは非同期的にディスクに永続化される可能性があり、書き込みが返された後にディスクに永続化されるという保証はないため、このプラグインを重要なデータの保存には使用しないでください。

サポートされるデータ型は intdoubleboolStringList<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 だったため、最新を設定しています。

pubspec.yaml
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 のようなものです。
単純なデータ保存に向いているパッケージなので、重要なデータ保存時は別のクラウドサービスを使用した方が良さそうです!

参考サイト

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1