[flutter] shared_preferences 를 사용하여 애플리케이션 설정을 저장하는 방법은 무엇인가요?

애플리케이션 설정을 저장하기 위해 shared_preferences 패키지를 사용할 수 있습니다. 이 패키지는 앱이 종료되어도 데이터를 유지할 수 있도록 지원합니다.

먼저, shared_preferences 패키지를 pubspec.yaml 파일에 추가해야 합니다. 아래와 같이 dependencies 섹션에 패키지를 추가합니다:

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.6

그리고나서 pub get 명령을 실행하여 패키지를 다운로드합니다.

$ flutter pub get

이제 설정값을 저장하고 불러오는 코드를 작성해보겠습니다. 예시로 앱의 언어 설정값을 저장한다고 가정해보겠습니다.

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

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String selectedLanguage = '';

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

  void loadLanguage() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
      selectedLanguage = prefs.getString('language') ?? '';
    });
  }

  void saveLanguage(String language) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
      selectedLanguage = language;
    });
    await prefs.setString('language', language);
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Language App',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Language App'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                'Selected Language: $selectedLanguage',
                style: TextStyle(fontSize: 20),
              ),
              ElevatedButton(
                onPressed: () {
                  saveLanguage('English');
                },
                child: Text('English'),
              ),
              ElevatedButton(
                onPressed: () {
                  saveLanguage('Korean');
                },
                child: Text('Korean'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

위의 코드는 selectedLanguage 변수에 저장된 언어 설정값을 불러오고, 변경할 수 있는 예시 앱입니다. saveLanguage 함수를 통해 설정값을 저장하고, loadLanguage 함수를 통해 설정값을 불러옵니다. 앱을 실행하면 설정값을 변경할 수 있는 버튼과 현재 저장된 설정값이 표시됩니다.

이와 같이 shared_preferences 패키지를 사용하여 애플리케이션 설정을 저장하고 불러올 수 있습니다. 자세한 내용은 shared_preferences 패키지의 공식 문서를 참조해주세요.