[flutter] 플러터 프로바이더 예시

이번에는 Flutter 앱에서 상태 관리를 위해 Provider를 사용하는 간단한 예제를 준비했다. Provider는 Flutter 앱의 상태 관리를 쉽게 처리할 수 있도록 도와주는 패키지다. 이 예제에서는 Provider를 사용하여 사용자 데이터를 관리하고 업데이트하는 방법을 살펴볼 것이다.

의존성 추가

먼저, pubspec.yaml 파일에 provider 패키지를 추가한다.

dependencies:
  flutter:
    sdk: flutter
  provider: ^4.3.2

의존성을 추가한 후, 터미널에서 다음 명령어를 실행하여 패키지를 업데이트한다.

flutter pub get

모델 클래스 생성

다음으로, 사용자 정보를 담당할 모델 클래스를 생성한다. 이 예시에서는 간단하게 사용자의 이름과 이메일 주소만을 포함한 클래스를 만들겠다.

class User {
  final String name;
  final String email;

  User({required this.name, required this.email});
}

Provider 설정

이제 Provider를 설정하여 사용자 데이터를 관리하자. ChangeNotifier를 상속받은 UserProvider 클래스를 생성하고, 사용자 데이터 상태를 관리한다.

import 'package:flutter/foundation.dart';

class UserProvider extends ChangeNotifier {
  User _user = User(name: 'John Doe', email: 'john.doe@example.com');

  User get user => _user;

  void updateUser(User newUser) {
    _user = newUser;
    notifyListeners();
  }
}

화면 구성

마지막으로, 화면을 구성하여 Provider를 이용해 사용자 데이터를 표시하고 업데이트하는 기능을 구현한다.

Consumer<UserProvider>(
  builder: (context, userProvider, child) {
    final user = userProvider.user;

    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Text('이름: ${user.name}'),
        Text('이메일: ${user.email}'),
        ElevatedButton(
          onPressed: () {
            userProvider.updateUser(User(name: 'Jane Smith', email: 'jane.smith@example.com'));
          },
          child: Text('업데이트'),
        ),
      ],
    );
  },
)

결론

이제 Provider를 이용하여 간단한 사용자 데이터 관리 및 업데이트 기능을 구현하는 방법을 살펴보았다. Provider를 사용하면 앱의 상태 관리가 더욱 간편해지며, 복잡한 상태 관리 문제를 해결할 수 있다. 이러한 상태 관리 패턴을 적절히 활용하면 Flutter 앱의 성능과 유지보수성을 향상시킬 수 있다.

이상으로 간단한 Provider 예제를 살펴보았다. 참고로 위 코드는 Flutter 2.x 버전 기준으로 작성되었다.

참고 자료 - Provider 패키지 공식 문서