Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

flutterアプリに永続ストレージ(アプリキャッシュ)を追加する


今回は、flutterアプリにshared_preferencesを利用して永続ストレージ機能を追加したいと思います。

参考文献

  • 以下のパッケージを使用します。
    • pub.dev
    • 上記リンクのReadmeには細かい使い方の注意が記載されています。

shared_preferencesとは

上記リンクには一番最初に以下のような記述がありました。

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

  • Platform別のサポート状況とデータ保存先を記載しておきます。

    Platform Support Storage location
    Android SDK 16+ SharedPreferences
    iOS 11.0+ NSUserDefaults
    Linux Any In the XDG_DATA_HOME directory
    macOS 10.14+ NSUserDefaults
    Web Any LocalStorage
    Windows Any In the roaming AppData directory

サポートされているデータ型

  • 上記READMEに記載されていた内容です
    • Supported data types are int,double,bool,StringandList<String>.

手順

手順1:shared_preferencesのパッケージを追加

  • 私はfvmを導入しているので以下のコマンドでパッケージを追加しました。

      fvm flutter pub add shared_preferences
    

コマンド実行結果

(省略)\training_app> fvm flutter pub add shared_preferences
Resolving dependencies...
  _fe_analyzer_shared 64.0.0 (65.0.0 available)
  analyzer 6.2.0 (6.3.0 available)
  flutter_lints 2.0.3 (3.0.1 available)
  js 0.6.7 (0.7.0 available)
  lints 2.1.1 (3.0.0 available)
  matcher 0.12.16 (0.12.16+1 available)
  material_color_utilities 0.5.0 (0.8.0 available)
  meta 1.10.0 (1.11.0 available)
  path 1.8.3 (1.9.0 available)
+ path_provider_linux 2.2.1
+ path_provider_platform_interface 2.1.1
+ path_provider_windows 2.2.1
+ platform 3.1.4
+ shared_preferences 2.2.2
+ shared_preferences_android 2.2.1
+ shared_preferences_foundation 2.3.4
+ shared_preferences_linux 2.3.2
+ shared_preferences_platform_interface 2.3.1
+ shared_preferences_web 2.2.2
+ shared_preferences_windows 2.3.2
  test_api 0.6.1 (0.7.0 available)
  web 0.3.0 (0.4.0 available)
  web_socket_channel 2.4.0 (2.4.1 available)
+ xdg_directories 1.0.4
Changed 12 dependencies!
12 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.

手順2:実装

  • 省略(実装したときに追記するかもしれない)