[flutter] 플러터 Riverpod를 이용한 사용자 설정 저장 방법

Flutter를 사용하는 개발자들은 종종 사용자 설정을 저장하고 관리하는 기능을 포함해야 합니다. Riverpod는 플러터 애플리케이션에서 상태 관리를 위한 강력한 도구 중 하나입니다. 이번 글에서는 Riverpod를 사용하여 플러터 앱의 사용자 설정을 저장하는 방법을 알아보겠습니다.

1. Riverpod 설정

먼저, 앱의 상태 관리에 Riverpod를 설정해야 합니다. pubspec.yaml 파일에 아래의 의존성을 추가해주십시오.

dependencies:
  flutter:
    sdk: flutter
  riverpod: ^0.14.0

그리고 main.dart 파일에서 아래의 import 문을 추가해주세요.

import 'package:flutter_riverpod/flutter_riverpod.dart';

2. 사용자 설정 모델 생성

사용자 설정을 저장하기 위한 데이터 모델을 생성합니다. 예를 들어, 앱의 언어 설정을 저장할 수 있는 UserSettings 클래스를 작성해보겠습니다.

class UserSettings {
  String language;

  UserSettings({required this.language});
}

3. 사용자 설정 상태 제공

이제 Riverpod를 사용하여 사용자 설정 상태를 제공하는 provider를 만들어보겠습니다. userSettingsProvider라는 이름으로 provider를 생성하여 사용자 설정을 관리합니다.

final userSettingsProvider = Provider<UserSettings>((ref) => UserSettings(language: 'en'));

위의 코드에서는 기본적으로 영어(en)로 설정되어 있습니다. 필요한 경우 설정을 읽어오거나 기본값을 적절히 설정해주십시오.

4. 사용자 설정 변경

이제 사용자 설정을 변경하기 위한 함수를 작성해보겠습니다. updateUserSettings라는 메서드를 만들어 사용자 설정 provider의 값을 업데이트합니다.

void updateUserSettings(ProviderContainer container, String language) {
  container.read(userSettingsProvider).language = language;
}

위의 코드에서는 provider의 값을 직접 수정하는 것이 아니라, provider container를 사용하여 값을 업데이트합니다.

5. 사용자 설정 사용

사용자 설정을 사용하기 위해선, Riverpod를 사용하여 사용자 설정 provider 값을 읽어와야 합니다. 예를 들어, 다국어 지원 앱에서 현재 설정된 언어를 사용하여 텍스트를 표시하는 경우 아래와 같은 코드를 사용할 수 있습니다.

String getLocalizedText(BuildContext context, String key) {
  final userSettings = context.read(userSettingsProvider);
  // 언어 설정을 기반으로 해당 키에 대한 로컬라이즈된 텍스트 반환
}

위의 코드에서는 userSettingsProvider를 사용하여 현재 사용자 설정을 가져옵니다. 이를 통해 앱의 다국어 지원 기능을 쉽게 구현할 수 있습니다.

마치며

이렇게 Riverpod를 사용하여 플러터 앱에서 사용자 설정을 저장하고 관리하는 방법을 알아보았습니다. Riverpod는 상태 관리를 더욱 효율적으로 처리할 수 있게 도와주는 강력한 도구입니다. 사용자 설정 외에도 다양한 상태 관리에 적용할 수 있으니, Riverpod에 대해 더 알아보시기 바랍니다.

참고 자료: