[flutter] 플러터 Riverpod를 사용한 상태 유지 방법

플러터(Flutter) 앱 개발에서 상태 관리는 매우 중요합니다. 상태 관리를 효율적으로 처리하기 위해 Riverpod를 사용할 수 있습니다. Riverpod는 InheritedWidget과 Provider를 기반으로 한 Flutter 상태 관리 라이브러리입니다. 이 블로그에서는 플러터 Riverpod를 사용하여 상태를 유지하는 방법에 대해 알아보겠습니다.

Riverpod 소개

Riverpod는 플러터의 상태 관리를 쉽게 할 수 있는 도구입니다. Riverpod를 사용하면 전역적으로 액세스 가능한 상태를 만들고 관리할 수 있습니다. Riverpod는 변경 알림이 가능하고 다양한 Provider가 제공되어 효율적인 상태 관리를 할 수 있습니다.

Riverpod 설치

Riverpod를 사용하기 위해 flutter_riverpod 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에 다음과 같이 flutter_riverpod를 추가합니다.

dependencies:
  flutter_riverpod: ^1.0.0

패키지를 추가한 후에는 flutter pub get 명령어를 사용하여 패키지를 다운로드합니다.

상태 유지하기

상태를 유지하기 위해 Riverpod의 StateProvider를 사용할 수 있습니다. StateProvider는 상태를 읽고 쓸 수 있는 Provider입니다. 상태를 읽는 것은 간단하지만 상태를 업데이트하려면 StateProvider의 값을 변경해야 합니다.

다음은 Riverpod를 사용하여 카운터 앱에서 상태를 유지하는 간단한 예제입니다.

import 'package:flutter_riverpod/flutter_riverpod.dart';

final counterProvider = StateProvider<int>((ref) => 0);

class CounterApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ProviderScope(
      child: MaterialApp(
        home: Scaffold(
          appBar: AppBar(
            title: Text('Counter App'),
          ),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                Consumer(builder: (context, watch, child) {
                  final counter = watch(counterProvider).state;
                  return Text('Count: $counter');
                }),
                ElevatedButton(
                  child: Text('Increment'),
                  onPressed: () => context.read(counterProvider).state++,
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

void main() {
  runApp(CounterApp());
}

위의 예제에서 StateProvider를 사용하여 counterProvider를 정의하고 초기값을 0으로 설정했습니다. counter를 읽기 위해서는 Consumer 위젯을 사용하고, counterProvider를 업데이트 하기 위해서는 context.read를 사용합니다.

이제 앱을 실행하면 초기값이 0인 카운터가 표시됩니다. “Increment” 버튼을 클릭하면 카운터가 1씩 증가합니다.

결론

이 블로그에서는 플러터 Riverpod를 사용하여 상태를 유지하는 방법에 대해 알아보았습니다. Riverpod를 사용하면 플러터 앱의 상태 관리를 효율적으로 처리할 수 있습니다.

Riverpod에 대해 더 자세히 알고 싶다면 공식 문서를 참조해보세요. Riverpod 공식 문서

Happy coding!