Flutter Riverpod 상태 분리 의존성 결
Flutter 앱 개발에서 상태관리 라이브러리로 Riverpod을 처음 사용한 것은 로그인 상태와 사용자 데이터를 여러 화면에서 공유해야 할 때였습니다. setState만으로 관리하다 보니 위젯 트리가 깊어질수록 상태를 위에서 아래로 전달하는 것이 불편해졌습니다.
Provider를 통해 상태를 위젯 트리에서 분리하자, 필요한 화면에서 바로 접근할 수 있어 코드가 단순해졌습니다. AsyncNotifier를 활용해 API 호출의 로딩, 성공, 오류 상태를 한 곳에서 관리했는데, 각 화면에서 동일한 로직을 반복 구현하지 않아도 됐습니다.
BLoC과 비교했을 때 Riverpod은 보일러플레이트가 적어 빠르게 시작하기 좋았고, 의존성 오버라이드 기능이 테스트 작성을 편리하게 해줬습니다. Riverpod은 상태와 로직을 UI에서 분리하는 경계를 명확히 만드는 것이 결임을 배웠습니다.