SharedPreferencesは、Flutterでアプリケーションの状態を保存するためのパッケージです。このパッケージを使用することで、アプリ内に保存したいデータを簡単に永続化することができます。例えば、アプリ内で設定値やユーザーの状態を保存する場合に使用することができます。
目次
使い方
まずは、pubspec.yamlにSharedPreferencesパッケージを追加します。
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.1.0
次に、SharedPreferencesをインポートします。
import 'package:shared_preferences/shared_preferences.dart';
データを保存する際は、SharedPreferencesクラスのインスタンスを作成し、そのインスタンスを使って保存します。
// データを保存する
final prefs = await SharedPreferences.getInstance();
prefs.setString('key', 'value');
データを読み込む際も同様に、SharedPreferencesクラスのインスタンスを作成し、そのインスタンスを使って読み込みます。
// データを読み込む
final prefs = await SharedPreferences.getInstance();
final value = prefs.getString('key');
サンプルコード
最後に、SharedPreferencesパッケージの使い方を簡単なサンプルコードで説明します。
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'SharedPreferences Demo',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final _keyController = TextEditingController();
final _valueController = TextEditingController();
String _value = '';
Future<void> _saveData() async {
final prefs = await SharedPreferences.getInstance();
prefs.setString(_keyController.text, _valueController.text);
}
Future<void> _loadData() async {
final prefs = await SharedPreferences.getInstance();
setState(() {
_value = prefs.getString(_keyController.text) ?? '';
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('SharedPreferences Demo'),
),
body: Padding(
padding: EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextField(
controller: _keyController,
decoration: InputDecoration(
labelText: 'Key',
),
),
TextField(
controller: _valueController,
decoration: InputDecoration(
labelText: 'Value',
),
),
SizedBox(height: 16),
ElevatedButton(
onPressed: _saveData,
child: Text('Save Data'),
),
SizedBox(height: 16),
ElevatedButton(
onPressed: _loadData,
child: Text('Load Data'),
),
SizedBox(height: 16),
Text('Value: $_value'),
],
),
),
);
}
}
このサンプルコードは、キーと値を入力して「Save Data」ボタンを押すとSharedPreferencesにデータを保存し、「Load Data」ボタンを押すと保存したデータを読み込んで表示するアプリケーションです。
まとめ
以上が、FlutterのSharedPreferencesパッケージの使い方になります。SharedPreferencesは、アプリ内に保存したいデータを簡単に永続化することができるため、設定値やユーザーの状態を保存する場合に非常に便利です。ぜひ、実際にアプリケーションに組み込んでみてください。