[flutter] shared_preferences를 통해 사용자가 선택한 푸시 알림 소리를 저장하는 방법은?

앱을 개발할 때 사용자의 설정과 기본 상태를 저장하고 검색하는 데 유용한 패키지 중 하나가 shared_preferences입니다. 이를 활용하여 사용자가 선택한 푸시 알림 소리를 저장할 수 있습니다.

1. shared_preferences 패키지 추가

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

dependencies:
  shared_preferences: ^2.0.8

그런 다음 터미널에서 다음 명령을 사용하여 패키지를 가져옵니다.

flutter pub get

2. 코드 구현

다음은 shared_preferences를 사용하여 사용자가 선택한 푸시 알림 소리를 저장하는 코드의 예시입니다.

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

class PushNotificationSettings extends StatefulWidget {
  @override
  _PushNotificationSettingsState createState() => _PushNotificationSettingsState();
}

class _PushNotificationSettingsState extends State<PushNotificationSettings> {
  String selectedNotificationSound = 'default';

  Future<void> _saveNotificationSound(String sound) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    await prefs.setString('notificationSound', sound);
  }

  Future<void> _loadNotificationSound() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
      selectedNotificationSound = prefs.getString('notificationSound') ?? 'default';
    });
  }

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('푸시 알림 설정'),
      ),
      body: ListView(
        children: <Widget>[
          ListTile(
            title: Text('기본 소리'),
            leading: Radio(
              value: 'default',
              groupValue: selectedNotificationSound,
              onChanged: (value) {
                setState(() {
                  selectedNotificationSound = value;
                  _saveNotificationSound(value);
                });
              },
            ),
          ),
          ListTile(
            title: Text('사용자 지정 소리'),
            leading: Radio(
              value: 'customSound',
              groupValue: selectedNotificationSound,
              onChanged: (value) {
                setState(() {
                  selectedNotificationSound = value;
                  _saveNotificationSound(value);
                });
              },
            ),
          ),
        ],
      ),
    );
  }
}

위의 예제 코드에서는 사용자가 선택한 푸시 알림 소리를 저장하기 위해 shared_preferences를 사용하는 방법을 보여줍니다.

이제 앱을 실행하고 푸시 알림 설정 페이지를 통해 소리를 선택하면 해당 소리가 shared_preferences에 저장됩니다.

이러한 방식으로, 사용자가 앱에서 선택한 설정을 shared_preferences를 통해 저장하고 복원할 수 있습니다.

참고: 공식 shared_preferences 패키지 문서를 참고하면 더 자세한 정보를 얻을 수 있습니다.