[flutter] shared_preferences를 사용하여 사용자가 선택한 앱 언어를 업데이트하는 방법은?

앱의 언어를 변경하는 경우, 사용자가 선택한 언어 설정을 저장하고 관리해야 합니다. 이때 Flutter에서는 shared_preferences 패키지를 사용하여 사용자의 선택을 저장하고 업데이트할 수 있습니다.

1. shared_preferences 패키지 추가

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

dependencies:
  shared_preferences: ^2.0.6

해당 패키지를 설치하려면 터미널에서 flutter pub get 명령어를 실행합니다.

2. 언어 설정 저장

프로필 설정 또는 환경 설정과 관련된 페이지에서 사용자가 선택한 언어 값을 shared_preferences를 사용하여 저장합니다.

import 'package:shared_preferences/shared_preferences.dart';

Future<void> saveSelectedLanguage(String languageCode) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.setString('selectedLanguage', languageCode);
}

3. 언어 설정 불러오기

앱이 시작될 때 또는 새로운 언어가 선택될 때, 저장된 언어 설정을 불러옵니다.

import 'package:shared_preferences/shared_preferences.dart';

Future<String> getSelectedLanguage() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  return prefs.getString('selectedLanguage') ?? 'en'; // 기본값은 영어로 설정
}

4. 언어 업데이트

선택된 언어가 변경될 때, UI를 업데이트합니다. 이를 위해 setState를 호출하거나 Provider 또는 Bloc을 사용하여 상태 변경을 관리할 수 있습니다.

String _selectedLanguage = 'en'; // 기본 언어 설정

void updateLanguage(String newLanguage) {
  setState(() {
    _selectedLanguage = newLanguage;
  });
}

이제 shared_preferences를 사용하여 사용자가 선택한 앱 언어를 업데이트할 수 있습니다. 변경된 언어 설정을 계속 유지하고 새로고침 또는 재부팅 후에도 사용자의 언어 선택을 유지할 수 있습니다.

참고: shared_preferences 패키지 공식 문서