Local storage
大量のデータを格納する必要がなく、構造を必要としない場合は、shared_preferencesを使用して、プリミティブデータ型の永続的なキーと値のペア(bool、float、int、long、String)の読み取りと書き込みを行うことができます。
How do I store persistent key-value pairs that are global to the app?
React Nativeでは、AsyncStorageコンポーネントのsetItem関数とgetItem関数を使用して、アプリに対して永続的でグローバルなデータを保存および取得します。
// React Native
await AsyncStorage.setItem( 'counterkey', json.stringify(++this.state.counter));
AsyncStorage.getItem('counterkey').then(value => {
if (value != null) {
this.setState({ counter: value });
}
});
Flutterでは、shared_preferencesプラグインを使用して、アプリに対して永続的でグローバルなKey-Valueデータを保存および取得します。
shared_preferencesプラグインは、iOSのNSUserDefaultsとAndroidのSharedPreferencesをラップし、単純なデータの永続的なストアを提供します。 プラグインを使用するには、pubspec.yamlファイルに依存関係としてshared_preferencesを追加してから、Dartファイルにパッケージをインポートします。
dependencies:
flutter:
sdk: flutter
shared_preferences: ^0.4.3
// Dart
import 'package:shared_preferences/shared_preferences.dart';
永続データを実装するには、SharedPreferencesクラスによって提供されるsetterメソッドを使用します。 setInt、setBool、setStringなどのさまざまなプリミティブ型にセッターメソッドを使用できます。 データを読み取るには、SharedPreferencesクラスによって提供される適切なgetterメソッドを使用します。 セッターごとに、対応するgetterメソッド(getInt、getBool、getStringなど)があります。
SharedPreferences prefs = await SharedPreferences.getInstance();
_counter = prefs.getInt('counter');
prefs.setInt('counter', ++_counter);
setState(() {
_counter = _counter;
});
https://pub.dev/packages/shared_preferences/example
↑上記サンプルコードで挙動を試せます。
参考
https://flutter.dev/docs/get-started/flutter-for/react-native-devs#local-storage