Open4
FlutterでのCacheのためのアーキテクチャを薄くしたいメモ
アプリを作ってるとクライアント側でUseCaesやRepositoryを作るアーキテクチャを採用することが多かったが、ちょっと億劫だなと思うことがたまにある
サービスの特性を踏まえてクライアント側だけではなく、全体のアーキテクチャを考えられるのがベスト
GraphQL or RESTful
あくまでもサービス内容によると思うが、直近自分が関わるサービスに於いてはGraphQL のような表現力がある方がクライアント側としては作りやすいと思うことが多いので最近はGraphQL 推し
メモ
- GraphQLのクライアントとしてApollo Clientを使っていたらのcacheの機構がすごいなと思ったこと
- Apollo Client以外にどんなのあるかちょっと調べる
- GraphQL導入でかんがえたほうがいいこと https://engineering.mercari.com/blog/entry/20220303-concerns-with-using-graphql/
- Apollo Clientしか使ったことがなかったので、他のClientだったりむしろどういう理由で何を選択すべきか?
- FlutterってApollo Client無いけどGraphQLでやるとなったら何を使うのがいいのか?
- GraphQLじゃなくてRESTfulの場合でも クライアントをなるべく薄い構造にするために選択肢はないか?
- そもそもRepositoryとかをAPIキャッシュとしてしか使ってなかったみたいなことあるかも?
- それだったらわざわざRepositoryとかいらないよな…
- StateManagementをもっと楽にしたい…
- ReactだとSWRやTanStackQuery(ReactQuery)みたいな物がある
Flutterだとどうするか?
riverpodを使用する
-
A Reactive Caching and Data-binding Framework
- v2のドキュメントわかりやすくなってる!
- AsyncValueを使用したAPI通信の実装【Flutter】
- Riverpod v2のAsyncValueを理解する
- Cacheはしてくれるところだったり、AsyncValueは便利
- ドキュメントの最初のサンプルの書き方の場合Cacheの更新はDisposeする感じになるのか?