| GetX | Provider | |
|---|---|---|
| 개발사 | GetX 커뮤니티 | Google 공식 지원 |
| 철학 | 간단한 코드 + 성능 최적화 | 선언적 상태 관리 |
| 상태 관리 방식 | 반응형(reactive) 상태 관리 | InheritedWidget 기반 상태 관리 |
| 추가 기능 | 상태 관리 + 라우팅 + 의존성 주입 | 상태 관리 전용 |
👉 GetX는 단순한 문법과 함께 강력한 기능(라우팅, 의존성 주입)을 제공
👉 Provider는 공식 라이브러리이며, 플러터 철학(선언적 UI)에 충실
.obs를 붙이면 자동으로 UI 업데이트class CounterController extends GetxController {
var count = 0.obs; // 반응형 변수
void increment() => count++; // 자동 UI 업데이트
}
ChangeNotifier를 활용하여 상태 변경을 알림notifyListeners()를 호출해야 UI가 업데이트됨class CounterProvider with ChangeNotifier {
int count = 0;
void increment() {
count++;
notifyListeners(); // 수동으로 UI 업데이트
}
}
GetX는 자동으로 상태를 업데이트하고, Provider는 수동으로 notifyListeners()를 호출해야 함!
| GetX | Provider | |
|---|---|---|
| 렌더링 최적화 | 최소 위젯만 리빌드 | Consumer 사용으로 최적화 필요 |
| 메모리 관리 | 라우트 종료 시 컨트롤러 자동 삭제 가능 | 필요 시 dispose() 구현 필요 |