[flutter] shared_preferences 를 사용하여 사용자가 선택한 메시지 톤을 저장하는 방법은 무엇인가요?

Flutter의 shared_preferences 패키지를 사용하면 사용자의 설정과 상태를 영속적으로 저장할 수 있습니다. 사용자가 선택한 메시지 톤을 저장하기 위해 shared_preferences를 사용하는 방법에 대해 알아보겠습니다.

1. shared_preferences 패키지 추가하기

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

dependencies:
  flutter:
    sdk: flutter

  shared_preferences: ^2.0.8

이후, 터미널에서 flutter pub get 명령어를 실행하여 패키지를 가져옵니다.

2. 메시지 톤 저장하기

이제, 사용자의 선택한 메시지 톤을 저장하는 코드를 작성해보겠습니다.

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

class MessageToneSettingsPage extends StatefulWidget {
  @override
  _MessageToneSettingsPageState createState() => _MessageToneSettingsPageState();
}

class _MessageToneSettingsPageState extends State<MessageToneSettingsPage> {
  String selectedTone = "";

  @override
  void initState() {
    super.initState();
    loadSelectedTone(); // 앱 실행 시 저장된 톤 불러오기
  }

  void loadSelectedTone() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
      selectedTone = prefs.getString("selectedTone") ?? ""; // 저장된 톤 불러오기
    });
  }

  void saveSelectedTone(String tone) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
      selectedTone = tone;
      prefs.setString("selectedTone", tone); // 톤 저장하기
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('메시지 톤 설정'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              '선택한 톤: $selectedTone',
              style: TextStyle(fontSize: 20),
            ),
            SizedBox(height: 16),
            RaisedButton(
              onPressed: () {
                saveSelectedTone("기본 톤");
              },
              child: Text('기본 톤 저장'),
            ),
            RaisedButton(
              onPressed: () {
                saveSelectedTone("다른 톤");
              },
              child: Text('다른 톤 저장'),
            ),
          ],
        ),
      ),
    );
  }
}

위 코드는 MessageToneSettingsPage라는 StatefulWidget을 생성하고, 사용자가 선택한 톤을 저장하고 불러오는 기능을 갖고 있습니다. 앱을 실행하면 사용자의 선택한 톤이 화면에 표시되며, “기본 톤 저장” 및 “다른 톤 저장” 버튼을 누르면 해당 톤이 저장됩니다.

3. 톤 불러오기

톤을 불러오기 위해 loadSelectedTone 메소드를 이용합니다. 이 메소드는 앱이 실행될 때 한 번 실행되며, SharedPreferences에서 저장된 톤을 불러와 selectedTone 변수에 할당합니다. 만약 저장된 톤이 없을 경우 빈 문자열을 할당합니다.

4. 톤 저장하기

톤을 저장하기 위해 saveSelectedTone 메소드를 사용합니다. 이 메소드는 톤을 받아와 SharedPreferences에 저장한 후, selectedTone 변수에 할당합니다.

위 코드를 적용하여 사용자의 선택한 메시지 톤을 저장하고 불러올 수 있습니다. shared_preferences 패키지는 Flutter 애플리케이션에서 간단하게 설정 및 상태를 저장하는 데 유용한 도구입니다.
더 자세한 내용은 shared_preferences 패키지 문서를 참조하시기 바랍니다.