nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

Xamarin.FormsでSQLiteライブラリ何つかったらいいの?の自分的検討結果

Xamarin.FormsでSQLiteを利用するにあたって、色々悩んでアドバイスも貰って考えた結果をここに残しておこうと思います。
あくまで私の選択であって、ほかの人にもこれがベストな回答だとは限りませんが参考の一つになれば幸いです。

結論から言いますと、以下の図内の「sqlite-net-pcl」を利用することに決めました。

f:id:nuitsjp:20160627190731p:plain

比較対象となったのは上のスクショに一緒に映っている「SQLite.Net-PCL」です。
そもそもなぜ悩んだかというと、要約すると以下の通りです。

  1. 「SQLite.Net-PCL」のほうがNuGetでダウンロード数が多い
  2. 軽く評価したところ「SQLite.Net-PCL」でも、一部を除きやりたい事は実施できた

ためです。
ではなぜ「sqlite-net-pcl」を選択したのか?順番に説明いたします。

Xamarin公式から紹介されている

developer.xamarin.com

ここの中ほどで「sqlite-net-pcl」が紹介されているのが見て取れます。

f:id:nuitsjp:20160627191441p:plain

「sqlite-net-pcl」であれば、PCLStorageと組み合わせて100%PCLで記述できる

表題の通りです。
PCLStorageとの組み合わせは以下も見てもらえると嬉しいです。

nuits.hatenadiary.jp

「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で教えていただきました。ありがとうございました!

AkavacheはXamarinから利用可能なKeyValueStoreで、amayさんが紹介してくださっています。

qiita.com

  • 他のライブラリから利用されている=そのライブラリの作者の判断でも「sqlite-net-pcl」が良いと評価されている
  • 自分もちょっとAkavacheを使ってみたい

といった辺りがポイントでした。

田淵さんから開発の経緯を伺った

最近、とみに営業を語っている疑惑が強まっている田淵さんから、以下のTweetをいただきました。

これを聞いて最終的にとりあえず「sqlite-net-pcl」で行ってみようと決断しました。
ありがとうございました!

以上です! てことで、参考になったらよいなと思います。
それではまた!