[flutter] shared_preferences 를 사용하여 사용자가 선택한 사운드 효과를 저장하는 방법은 무엇인가요?

이번 포스트에서는 Flutter 앱에서 사용자가 선택한 사운드 효과를 저장하기 위해 shared_preferences 패키지를 사용하는 방법을 알아보겠습니다. shared_preferences는 Flutter 앱에서 간단한 데이터를 로컬에 저장하고 검색할 수 있는 패키지입니다.

1. shared_preferences 패키지 추가하기

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

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.8

저장 후, 터미널에서 flutter pub get 명령어를 실행하여 패키지를 다운로드하고 프로젝트를 업데이트 해주세요.

2. 사용자가 선택한 사운드 효과 저장하기

사운드 효과의 상태를 저장하기 위해 shared_preferences 패키지를 사용해야 합니다. 아래의 코드를 참고하여 선택된 사운드 효과를 저장하는 함수를 작성해봅시다.

import 'package:shared_preferences/shared_preferences.dart';

// 사용자의 사운드 선택 저장하기
void saveSelectedSoundEffect(String soundEffect) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  await prefs.setString('selectedSoundEffect', soundEffect);
}

위의 코드에서는 SharedPreferences.getInstance() 함수를 사용하여 SharedPreferences 인스턴스를 얻은 다음, setString() 함수를 호출하여 ‘selectedSoundEffect’라는 키와 선택된 사운드 효과 값을 저장합니다.

3. 사용자가 선택한 사운드 효과 불러오기

이제, 앱이 시작될 때 저장된 선택 사운드 효과 값을 불러와야 합니다. 다음 코드를 참고하여 사운드 효과를 불러오는 함수를 작성해봅시다.

import 'package:shared_preferences/shared_preferences.dart';

// 사용자의 사운드 선택 불러오기
Future<String> loadSelectedSoundEffect() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  String selectedSoundEffect = prefs.getString('selectedSoundEffect') ?? '';
  return selectedSoundEffect;
}

위의 코드에서는 getString() 함수를 사용하여 ‘selectedSoundEffect’ 키의 값을 불러옵니다. 만약 선택된 사운드 효과가 저장되지 않은 경우, 빈 문자열을 반환합니다.

4. 사용자가 선택한 사운드 효과 확인하기

이제, 저장된 사용자의 사운드 효과를 확인하는 방법을 알아보겠습니다. 다음 코드를 참고하여 선택된 사운드 효과를 출력하는 함수를 작성해봅시다.

import 'package:flutter/material.dart';

class SoundEffectScreen extends StatefulWidget {
  @override
  _SoundEffectScreenState createState() => _SoundEffectScreenState();
}

class _SoundEffectScreenState extends State<SoundEffectScreen> {
  String selectedSoundEffect = '';

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

  // 저장된 사운드 효과 불러오기
  _loadSelectedSoundEffect() async {
    String soundEffect = await loadSelectedSoundEffect();
    setState(() {
      selectedSoundEffect = soundEffect;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('사운드 효과 선택'),
      ),
      body: Center(
        child: Text('선택된 사운드 효과: $selectedSoundEffect'),
      ),
    );
  }
}

위의 코드에서는 initState() 메소드를 사용하여 사운드 효과를 불러오고, 불러온 값을 selectedSoundEffect 변수에 저장합니다. 그리고 Scaffold 위젯 내부의 Text 위젯을 사용하여 선택된 사운드 효과를 출력합니다.

이제, 사용자가 사운드 효과를 선택하고 저장함에 따라 변경된 값을 확인할 수 있습니다.

이상으로 Flutter 앱에서 사용자가 선택한 사운드 효과를 저장하는 방법에 대해 알아보았습니다. shared_preferences 패키지는 간단한 데이터 저장 및 불러오기에 유용하며, 앱의 사용자 설정 등을 저장하는데 많이 활용됩니다.

참고: shared_preferences 패키지 문서