個人的に作りたいアプリがあるので、Flutterで開発をしています。スタンドアロンで動かしたかったので、ローカルで動くデータベースをいくつか検討し、最終的にIsarというやつを使いはじめました。 NoSQLでスキーマレスなのでわずらわしい設定みたいなものはないし、条件を指定して絞り込みをしつつ変更があるかを監視できるし、なかなか良いです。なによりモデルのクラスがシンプルに記述できるのが気に入ってます。 ちなみにデータベースの比較にはこの辺を参考にしました。ObjectBoxも気になってます。 さて、Flutterでアプリを作るならもちろんRiverpodは使いますよねと。 ということで、IsarとRiverpodを組み合わせるのってどんな感じかサンプルのプロジェクトを作ってみました。riverpod_generatorも使っています。 以下簡単にコードの解説をします。 モデルクラス 適当な
![Flutter用データベースIsarとRiverpodを組み合わせて使う](https://cdn-ak-scissors.b.st-hatena.com/image/square/4a194af90c192213ce69931649f3170debe1919a/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--WV-B4ggW--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3AFlutter%2525E7%252594%2525A8%2525E3%252583%252587%2525E3%252583%2525BC%2525E3%252582%2525BF%2525E3%252583%252599%2525E3%252583%2525BC%2525E3%252582%2525B9Isar%2525E3%252581%2525A8Riverpod%2525E3%252582%252592%2525E7%2525B5%252584%2525E3%252581%2525BF%2525E5%252590%252588%2525E3%252582%25258F%2525E3%252581%25259B%2525E3%252581%2525A6%2525E4%2525BD%2525BF%2525E3%252581%252586%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3AKyosuke%252520Takayama%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzA4ZGNmYzkwMzEuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)