[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);
  },
)

이제 간단한 예제를 통해 플러터 프로바이더를 사용하여 실시간 데이터 업데이트를 구현하는 방법을 살펴보았습니다. 위 방법을 통해 플러터 앱에서 상태 관리를 보다 쉽게 할 수 있게 될 것입니다.