[TIL] riverpod 학습 내용 정리

김영광·2026년 1월 12일
post-thumbnail

오늘은 riverpod 라이브러리를 이용해, 전에 만들었던 ToDo App 구현에 들어갔다.
정말 많은 고민과 시행착오를 겪었기에 같은 실수를 반복하지 않기 위해 정리해야겠다.

🔎 notifier?, provider?, viewmodel?

riverpod에서 가장 헷갈리는 부분은 notifier와 provider의 관계이다.
어느정도 개념이 잡혔지만 레거시 방식과 코드 생성 방식에는 또 다른 차이가 있기에, 오늘은 코드 생성 방식을 위주로 정리하고자 한다.
추후, 다시 한번 레거시 방식으로 구현해볼 의향이 있다.

⭐ Notifier

notifier는 compose에서 공부하던 viewmodel을 의미하는데, 단 하나의 상태만 관리할 수 있다.
정말 어디에 써먹으라는 건지 모르겠다..

Notifier의 종류는 대표적으로 3가지가 있다.
작년 말, riverpod 3.0 버전으로 업데이트 되며 달라진 점이 있다.

  • Notifier
  • FutureNotifier
  • StreamNotifier

위 3가지 Notifier가 riverpod 3.0을 대표한다.

⭐ Provider

Provider는 전에 Provider 라이브러리에서 학습한 것과는 사뭇 달랐다.
단순히 viewmodel(notifier)과 ui 단의 징검다리 같은 역할을 하는 것 같았다.
전역으로 선언된 ProviderScope 내에서 서로의 종류를 나타낸 듯 하다.

Provider가 싱글톤 객체로 사용되는지도 궁금했다.
학습이 더 필요하겠지만, 아직까지는 "싱글톤이 아니다"쪽인듯 하다.
Generator로 학습하다 보니 이런 부분은 build_runner에게 맡길 수 있어서 좋았다.

⭐ 추후 학습

  • Hook 라이브러리
  • 가장 이상적인 ViewModel(Notifier) 구현 방법
  • Controller 단 사용해보기
profile
주니어 개발자

0개의 댓글