
Flutter를 통해 개발하다보면 상태(State) 관리가 매우 중요하다는 것을 느낄 수 있음!
여기서 상태(State)란?
1)위젯이 빌드되는 동시에 읽을 수 있고, 2)위젯의 생명 주기동안 변경할 수 있는 정보를 말함.
(보통 사용자와 어플의 상호작용에 의해 변화하는 데이터들이 이에 해당)
특정 상태를 한 페이지 내에서만 사용할 경우엔 상태 관리가 어렵지 않겠지만, 여러 페이지에서 사용되는 상태가 필요한 상황이 많다면... 상태 관리가 복잡해지겠지?
그래서!!! 효과적인 상태 관리 방법이 필요해지게 된다. Flutter에서 사용할 수 있는 대표적인 상태 관리 방법으로는 다음을 들 수 있다.
📍 Flutter에서 사용할 수 있는 대표적인 상태 관리 방법
① Provider
② InheritedWidget & InheritedModel
③ Redux
④ BLoC / Rx
⑤ GetX
최근 많이 사용되는 건 Provider이기에 오늘은 Provider에 대해 알아보자!

📍 Provider
Provider는 Flutter에서 상태 관리를 쉽게 만드는 도구라고 생각하면 된다! 데이터를 효과적으로 제공하고 변경할 수 있는 방법을 제공한다. 그래서 Provider를 사용하면 보다 유용하게 상태를 관리하고 그 상태에 따라 UI를 업데이트 할 수 있음.
📍 Provider의 주요 기능
① 상태 관리
앱의 상태를 관리하고 상태에 따라 UI를 업데이트
② 의존성 주입
Provider는 의존성 주입을 지원해 애플리케이션 내에서 필요한 데이터나 서비스를 쉽게 전달
③ 성능 최적화
Provider는 lazy loading을 지원해서 필요할 때만 특정 서비스를 생성할 수 있음
① Provider
② StateProvider(Legacy)
③ StateNotifierProvider(Legacy)
④ FutureProvider
⑤ StreamProvider
⑥ ChangeNotifierProvider(Legacy)
⑦ NotifierProvider(리버팟 2.0에 추가)
⑧ AsyncNotifierProvider(리버팟 2.0에 추가)