はじめに
本記事では、モバイルアプリ開発に利用可能な組み込みNoSQLの選択肢について、整理する。
組み込みNoSQLデータベース
MongoDB Realm
Swift開発などで多くの利用者を持つ(誤解のないようにいえば、Androidや.Netもサポートしている)。日本語のモバイルアプリ開発入門書でも扱われている。
2019年にMongoDB社により、買収された。
Couchbase Lite
iOS、Android、.NET(UWP, Xamarin)をサポート。言語として、Swift、Objective-C、Java(デスクトップ、サーバーでも利用可)、C#をサポート。
NoSQLデータベースを提供するCouchbase社の製品カテゴリーCouchbase Mobileの一部であるが、コミュニティ版としても公開されている。
Kodein DB
KodeinフレームワークにおけるNoSQLデータベース。
Kodeinといった場合、Kodein-DIというDI(dependency injection)コンテナとしての認知が主、といって良いだろう。
UnQLite
UnQLite is a document store database similar to MongoDB, Redis, CouchDB etc. as well a standard Key/Value store similar to BerkeleyDB, LevelDB, etc.
LiteDB
LiteDB
.Net用の「MongoDB-like」データベース
iBoxDB
「Fast ACID Table Style Document NoSQL Database」を謳っている。
概観
上記紹介したうち、iBoxDB以外は、ドキュメントストアとしてJSON形式のデータを扱っている。
モバイルアプリの開発においては、アプリケーションが必要とするデータ構造(ドメインオブジェクト)とテーブル構造との間のギャップをORM(Object Relational Mapping)技術を使って埋めることは、いかにも冗長であり、SQLiteのような関係データベース以外の選択肢としては、事実上JSONデータベースがスタンダードといって良さそうだ。