Xamarin.FormsでSQLiteを利用するにあたって、色々悩んでアドバイスも貰って考えた結果をここに残しておこうと思います。
あくまで私の選択であって、ほかの人にもこれがベストな回答だとは限りませんが参考の一つになれば幸いです。
結論から言いますと、以下の図内の「sqlite-net-pcl」を利用することに決めました。
比較対象となったのは上のスクショに一緒に映っている「SQLite.Net-PCL」です。
そもそもなぜ悩んだかというと、要約すると以下の通りです。
- 「SQLite.Net-PCL」のほうがNuGetでダウンロード数が多い
- 軽く評価したところ「SQLite.Net-PCL」でも、一部を除きやりたい事は実施できた
ためです。
ではなぜ「sqlite-net-pcl」を選択したのか?順番に説明いたします。
Xamarin公式から紹介されている
ここの中ほどで「sqlite-net-pcl」が紹介されているのが見て取れます。
「sqlite-net-pcl」であれば、PCLStorageと組み合わせて100%PCLで記述できる
表題の通りです。
PCLStorageとの組み合わせは以下も見てもらえると嬉しいです。
「SQLite.Net-PCL」だと、どうしてもConnectionの生成にDependencyServiceの利用が求められます(と思う!)。
「sqlite-net-pcl」の方が直近まで開発が継続されているように見える
「sqlite-net-pcl」の最新版の公開日は2016年6月18日だが、「SQLite.Net-PCL」は2015年11月6日で止まっています。
もっともこれは見方によれば安定不安定で評価が逆転するのかもしれませんが。。。
Akavacheが内部で「sqlite-net-pcl」を使っているらしい
これはamayさんにTwitterで教えていただきました。ありがとうございました!
@nuits_jp 判断しづらいですけど私がよく使う Akavache が依存してるのが SQLitePCL.raw、それに依存してるのが sqlite-net-pcl なのでこっちかなと。GithubのStarも多いすね https://t.co/hoeMONq8nq
— これがあめいの選択だよ (@amay077) 2016年6月25日
AkavacheはXamarinから利用可能なKeyValueStoreで、amayさんが紹介してくださっています。
- 他のライブラリから利用されている=そのライブラリの作者の判断でも「sqlite-net-pcl」が良いと評価されている
- 自分もちょっとAkavacheを使ってみたい
といった辺りがポイントでした。
田淵さんから開発の経緯を伺った
最近、とみに営業を語っている疑惑が強まっている田淵さんから、以下のTweetをいただきました。
えのさんはどっちも同じですって言ってた気がします。どっちかがPCL対応してない時にフォークしたやつでその後元もPCL対応しておなじになった。とかなんとか。 https://t.co/6PdlkRQECp
— 田淵 義人@エクセルソフト (@ytabuchi) 2016年6月26日
これを聞いて最終的にとりあえず「sqlite-net-pcl」で行ってみようと決断しました。
ありがとうございました!
以上です!
てことで、参考になったらよいなと思います。
それではまた!