[Flutter] SharedPreferences の使い方

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は、アプリ内に保存したいデータを簡単に永続化することができるため、設定値やユーザーの状態を保存する場合に非常に便利です。ぜひ、実際にアプリケーションに組み込んでみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次