[flutter] shared_preferences를 이용하여 앱 내에서 사용자 설정을 유지하는 방법은?

앱을 사용하는 사용자에게 설정을 저장하고 유지하는 것은 중요합니다. Flutter에서는 shared_preferences 패키지를 사용하여 간단하게 앱 내에서 사용자 설정을 유지할 수 있습니다.

shared_preferences란?

shared_preferences는 안드로이드 및 iOS에서 앱 데이터를 영구 저장할 수 있는 패키지로, 사용자가 설정한 값이나 상태를 저장하고 다음에 앱을 다시 열 때 이를 가져와 사용할 수 있습니다.

flutter에서 shared_preferences 사용하기

먼저, shared_preferences 패키지를 pubspec.yaml 파일에 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.7

그런 다음, 패키지를 가져와 사용자 설정을 저장하고 가져오는 간단한 예제를 살펴보겠습니다.

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

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

class MyApp extends StatelessWidget {
  // 사용자 설정 값에 대한 키 정의
  static const String _isDarkModeKey = 'isDarkMode';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // 사용자 설정에 따라 다크 모드 적용
      theme: _getTheme(),
      home: Scaffold(
        appBar: AppBar(
          title: Text('앱 설정'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              _toggleDarkMode();
            },
            child: Text('다크 모드 토글'),
          ),
        ),
      ),
    );
  }

  ThemeData _getTheme() {
    return ThemeData(
      brightness: _getIsDarkMode() ? Brightness.dark : Brightness.light,
    );
  }

  bool _getIsDarkMode() {
    SharedPreferences.getInstance().then((prefs) {
      return prefs.getBool(_isDarkModeKey) ?? false;
    });
  }

  void _toggleDarkMode() {
    SharedPreferences.getInstance().then((prefs) {
      bool isDarkMode = prefs.getBool(_isDarkModeKey) ?? false;
      prefs.setBool(_isDarkModeKey, !isDarkMode);
    });
  }
}

이 예제에서는 shared_preferences를 사용하여 다크 모드 설정을 유지합니다. 사용자가 다크 모드 토글 버튼을 누를 때마다 해당 설정이 기억되고, 앱이 종료되어도 유지됩니다.

이제 당신의 앱에서 사용자 설정을 유지하는데 shared_preferences를 활용해 보세요!