flutterで各classでの依存物を定義する際、riverpodを使うといいという話をよく目にします。
dart
1final apiClientProvider = Provider.autoDispose( 2 (_) => GithubApiClientImpl(), 3); 4 5final githubRepositoryProvider = Provider.autoDispose( 6 (ref) => GithubRepositoryImpl(ref.read(apiClientProvider)), 7); 8 9final repositoryListViewModelProvider = StateNotifierProvider.autoDispose( 10 (ref) => RepositoryListViewModel(ref.read(githubRepositoryProvider)), 11);
しかし、なぜriverpodを使うといいのかそのメリットがよくわかりません。
下記のように利用時にイニシャライズではいけないのでしょうか?
下記の書き方でもテストファイルでモックをイニシャライズできるなど、テストの面でも十分な気がします。
dart
1 2final githubRepository = GithubRepositoryImpl(GithubApiClientImpl()); 3 4final repositoryListViewModel = RepositoryListViewModel(GithubRepositoryImpl(GithubApiClientImpl()));

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。