[flutter] shared_preferences를 통해 앱 설정을 저장하는 방법은 어떻게 되나요?

안녕하세요! Flutter를 사용하여 shared_preferences 라이브러리를 통해 앱 설정을 저장하는 방법에 대해 알아보겠습니다.

shared_preferences 라이브러리 추가

먼저, pubspec.yaml 파일에 다음과 같이 shared_preferences 라이브러리를 추가해줍니다.

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.6

그리고 나서 터미널에서 flutter pub get 명령어를 실행하여 라이브러리를 설치합니다.

앱 설정 저장 및 불러오기

이제, 다음과 같이 shared_preferences를 사용하여 앱 설정을 저장하고 불러오는 방법을 살펴보겠습니다.

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  final String _key = 'isDarkMode'; // 저장할 설정의 키

  Future<void> _toggleDarkMode(bool value) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    await prefs.setBool(_key, value); // 설정 저장
  }

  Future<bool> _getDarkMode() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    return prefs.getBool(_key) ?? false; // 저장된 설정 불러오기 (기본값: false)
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: _getDarkMode() ? ThemeData.dark() : ThemeData.light(),
      home: Scaffold(
        appBar: AppBar(
          title: Text('앱 설정 저장하기'),
        ),
        body: Center(
          child: Switch(
            value: _getDarkMode(),
            onChanged: (value) {
              _toggleDarkMode(value); // 설정 변경 시 저장
            },
          ),
        ),
      ),
    );
  }
}

위 코드는 shared_preferences를 사용하여 앱 설정(다크 모드)을 저장하고 불러오는 예시입니다. Switch 위젯을 사용하여 사용자가 설정을 변경하면 해당 설정을 SharedPreferences를 통해 저장하고, 앱을 다시 실행해도 설정이 유지됩니다.

이것으로 Flutter에서 shared_preferences를 사용하여 앱 설정을 저장하는 방법에 대해 알아보았습니다. 추가적으로 궁금한 점이 있으시다면, 언제든지 물어보세요!

참고 자료