플러터(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!