[flutter] shared_preferences를 활용하여 기본 설정값을 복원하는 방법은?

이 글에서는 Flutter 앱에서 공유 환경 설정을 저장하고 복원하기 위해 shared_preferences 패키지를 사용하는 방법에 대해 알아보겠습니다.

shared_preferences란?

shared_preferences는 Flutter 앱 내에서 간단한 key-value 형태의 데이터를 저장하고 관리할 수 있는 패키지입니다. 이를 사용하여 사용자의 프리퍼런스나 설정값을 저장하고 복원할 수 있습니다.

기본 설정값 복원하기

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

class SettingsScreen extends StatefulWidget {
  @override
  _SettingsScreenState createState() => _SettingsScreenState();
}

class _SettingsScreenState extends State<SettingsScreen> {
  bool _darkMode = false;

  @override
  void initState() {
    super.initState();
    _loadSettings();
  }

  _loadSettings() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
      _darkMode = prefs.getBool('darkMode') ?? false;
    });
  }

  _updateSettings(bool value) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
      _darkMode = value;
      prefs.setBool('darkMode', value);
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Settings')),
      body: SwitchListTile(
        title: Text('Dark Mode'),
        value: _darkMode,
        onChanged: _updateSettings,
      ),
    );
  }
}

위 예제 코드는 기본 설정값을 shared_preferences를 사용하여 관리하는 SettingsScreen 위젯을 보여줍니다. initState() 메서드에서 _loadSettings()를 호출하여 저장된 darkMode 설정을 복원하고, 사용자가 설정을 변경할 때마다 _updateSettings()를 호출하여 설정값을 갱신하고 저장합니다.

이렇게 함으로써 사용자는 앱을 다시 열 때마다 이전의 설정값을 유지하게 됩니다.

Flutter에서 기본 설정값을 복원하는 방법에 대한 간단한 예제입니다. 이를 통해 사용자 경험을 개선하고 설정값을 영구적으로 저장할 수 있습니다.

더 자세한 내용은 shared_preferences 패키지 문서를 참고하시기 바랍니다.