[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 패키지 문서를 참고하면 더 자세한 정보를 얻을 수 있습니다.