みなさんのFlutterアプリでは、状態管理にどのような手法を採り入れていますか? 私たちのアプリでは、初めはRiverpodとfreezedのパッケージを組み合わせて、Android MVVMのような状態管理手法で実装を行っていました。しかし、非Androidエンジニアの学習コストがかかったり、宣言的UIの特性にマッチしているとはいいがたいなど、このアプローチが最適ではないとの結論に達し、状態管理の方針を見直すこととなりました。
方針の策定にあたり、宣言的UIの先駆者であり、既に経験や議論の練度が高いReactの思想、特にReact HooksやRecoilベースのアイディアを取り入れることにしました。FlutterはReactの設計思想と非常に近しく、またRiverpodやFlutter HooksといったライブラリがこれらのReactの状態管理手法から影響を受けていることから、この方針が適していると考えました。
今回のセッションでは、RiverpodやFlutter Hooksを使用した、Reactインスパイアの状態管理手法について、具体的な実装や工夫をご紹介いたします。