[flutter] 플러터 프로바이더를 사용한 실시간 데이터 업데이트
플러터(Flutter) 앱을 개발하다 보면 앱의 상태 관리 및 데이터 업데이트가 필요한 경우가 있습니다. Provider
는 플러터에서 상태 관리를 쉽게 구현할 수 있도록 도와주는 패키지 중 하나입니다. 이번 포스트에서는 Provider
를 사용하여 실시간 데이터 업데이트를 구현하는 방법에 대해 알아보겠습니다.
1. Provider 설정
먼저, pubspec.yaml
파일에 다음과 같이 provider
패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
provider: ^5.0.0
그리고 다음과 같이 pub get
명령어를 사용하여 패키지를 설치합니다.
$ flutter pub get
2. 모델 클래스 생성
프로바이더를 통해 관리할 데이터 모델 클래스를 생성합니다. 예를들어, User
모델 클래스를 생성한다고 가정해 보겠습니다.
class User {
final String name;
User(this.name);
}
3. 프로바이더 생성
이제 ChangeNotifier
를 상속받는 프로바이더 클래스를 생성합니다. 이 클래스는 데이터를 관리하고 업데이트할 수 있는 메서드를 제공합니다.
import 'package:flutter/material.dart';
class UserProvider extends ChangeNotifier {
User _user = User('John Doe');
User get user => _user;
void updateUser(String name) {
_user = User(name);
notifyListeners();
}
}
4. 프로바이더 제공
이제, UserProvider
를 전역으로 제공하여 앱 전체에서 사용할 수 있도록 만들어야 합니다. 이를 위해 앱의 가장 상위 레벨에서 ChangeNotifierProvider
를 사용합니다.
void main() {
runApp(
ChangeNotifierProvider(
create: (context) => UserProvider(),
child: MyApp(),
),
);
}
5. 위젯에서 프로바이더 사용
마지막으로, 위젯에서 Provider.of
또는 Consumer
를 사용하여 프로바이더의 데이터를 받아올 수 있습니다. 데이터 변경 시 자동으로 위젯이 업데이트됩니다.
Consumer<UserProvider>(
builder: (context, userProvider, child) {
return Text(userProvider.user.name);
},
)
이제 간단한 예제를 통해 플러터 프로바이더를 사용하여 실시간 데이터 업데이트를 구현하는 방법을 살펴보았습니다. 위 방법을 통해 플러터 앱에서 상태 관리를 보다 쉽게 할 수 있게 될 것입니다.