회사에서 Flutter를 사용하여 앱 개발을 시작하면서, 제일 처음 난관에 봉착했던 게 "상태 관리" 이다. 웹 개발을 하면서 딱히 상태 관리라는 걸 해 줄 일이 없었던 것 같은데 앱 개발에서는 필수라는 것을 알게 되었고, 관련 라이브러리가 많다는 것(provider, bloc, riverpod, getX 등)도 알게 되었다. 그 중에서 가장 접근하기 쉽고, 처음 입문하는 나 같은 사람에게 추천하는 Provider를 사용하기로 결정했다.
상태 관리란?
말 그대로 현재 데이터의 상태를 공유하는 것이다. 현재 데이터의 상태를 실시간으로 관찰하고, 갱신해 주거나 변경해 주고, 또 사용자 UI에 반영해 주는 것! 이다.
Provider 패턴은 왜 사용할까?
Provider 패키지 install
https://pub.dev/packages/provider
pub.dev 에서 provider를 검색하고,
프로젝트 경로로 들어가 패키지를 설치해 준다.
flutter pub add provider
설치가 끝나면 pubspec.yaml 에 dependencies : provider 가 추가된다.
추가가 완료되었다면, import 하여 프로바이더를 사용하면 된다!
import 'package:provider/provider.dart';
Provider 사용하기 - 예제
class Count extends ChangeNotifier {
int count = 0;
increaseCount(){
count++;
notifyListeners();
}
}
increaseCount 함수를 호출하면 count를 하나씩 증가시켜주는 기본형의 예제이다. 천천히 살펴보자!
정리해 보자면, increaseCount() 함수가 호출되면 count가 1 증가하고, 해당 count 클래스의 데이터를 구독하고 있던 위젯들에게 notifyListeners() 함수가 count 값이 변화되었음을 알려준다.