[TIL] riverpod 도전기 1일차

김영광·2026년 1월 7일

오늘은 riverpod 실습에 나섰다.
혼자 코드를 작성해보며 동작 원리를 익히는데에 중점을 뒀다.

⭐ dependencies, dev:dependencies

오늘 flutter pub add를 통해 라이브러리를 추가하는 과정에서 여러 오류가 발생했다.
pubspec.yaml 파일을 뜯어 직접 확인해보니 dependencies와 dev:dependencies 두 가지로 나뉘어 있었다.

dependencies는 우리가 흔히 사용하는 flutter pub add 명령어를 통해 추가되는 라이브러리들을 의미한다.
코드에 남아있으며, 앱 실행 시 반드시 필요한 부분들이 담겨있다.
예를 들어, riverpod annotation, http 등 실행에 있어 없으면 안되는 부분들을 말한다.

반면 dev: dependencies는 코드에 남아있지 않아도 되는 라이브러리들을 의미한다.
flutter pub add dev: 명령어를 통해 라이브러리를 추가할 수 있으며, 앱 실행과는 무관한 부분을 의미한다.
예를 들어, riverpod, build_runner, lints 등이 여기에 속한다.

분류하지 않으면 에러가 환하게 반겨줄 것이다.

🔎 riverpod generator

riverpod 중에서도 generator를 사용했다.
채택한 가장 큰 이유는 build_runner에 의한 자동 Provider 생성이다.
외의 부분도 매력적이었지만, 위의 이유가 가장 컸다.


abstract class User with _$User {
  const factory User({
    required String gender,
    required String email,
    // required String picture,
  }) = _User;

  factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
}

freezed를 통해 만든 User 객체이다.
해당 객체에서도 볼 수 있듯이, buildrunner에게 코드 생성을 맡기려면 $ class명을 통해 알려주어야 한다.

🔎 build_runner 사용법

build_runner는 코드 자동 생성 로봇이다.
part를 통해 연결고리를 만들어주고, 해당 고리를 통해 여러 파일들간의 관계를 관리한다.
대표적으로, freezed 파일과 g 파일이 있다.

profile
주니어 개발자

0개의 댓글