[flutter] shared_preferences 를 사용하여 사용자의 선호 언어를 저장하는 방법은 무엇인가요?

Flutter에서는 shared_preferences 패키지를 사용하여 작은 데이터를 로컬에 영구적으로 저장할 수 있습니다. 이 패키지를 이용하여 사용자의 선호 언어를 저장하는 방법을 알아보겠습니다.

1. 패키지 추가

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

dependencies:
  shared_preferences: ^2.0.10

패키지를 추가한 후에는 pub get 명령을 실행하여 의존성을 설치해야 합니다.

2. 선호 언어 저장

선호 언어를 저장하기 위해 다음과 같은 코드를 작성합니다.

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

// 사용자의 선호 언어를 저장할 키
const String kLanguageKey = 'language';

class LanguagePreferences {
  // SharedPreferences 인스턴스 생성
  static Future<SharedPreferences> _prefs = SharedPreferences.getInstance();

  // 선호 언어를 가져오는 함수
  static Future<String> getLanguage() async {
    final SharedPreferences prefs = await _prefs;
    return prefs.getString(kLanguageKey) ?? '';
  }

  // 선호 언어를 저장하는 함수
  static Future<void> setLanguage(String language) async {
    final SharedPreferences prefs = await _prefs;
    await prefs.setString(kLanguageKey, language);
  }
}

위의 코드는 LanguagePreferences 클래스를 정의하여 getLanguage() 함수를 통해 선호 언어를 가져오고, setLanguage() 함수를 통해 선호 언어를 저장합니다. 선호 언어는 shared_preferences를 통해 로컬에 저장되며, kLanguageKey를 통해 해당 값을 식별합니다.

3. 사용자의 선호 언어 설정

선호 언어를 설정하는 예제 코드입니다.

// 사용자가 언어를 변경할 때마다 호출되는 함수
void onChangeLanguage(String language) async {
  await LanguagePreferences.setLanguage(language);
  // 언어 설정 후에는 앱을 다시 로드하여 변경된 언어가 적용되도록 합니다.
  // 예를 들어, 앱을 재시작하거나 부분적으로 리로드하는 등의 방식을 사용할 수 있습니다.
}

위의 코드에서 onChangeLanguage() 함수는 사용자가 언어를 변경할 때마다 호출되어 LanguagePreferences.setLanguage() 함수를 통해 선호 언어를 저장합니다. 저장 후에는 앱을 다시 로드하여 변경된 언어가 적용되도록 해야 합니다.

이제 shared_preferences 패키지를 사용하여 사용자의 선호 언어를 저장하는 방법에 대해 알게 되었습니다. 이를 활용하여 다국어 지원 기능을 구현할 수 있습니다.

참고 자료