はじめまして、上津原といいます。
スマホアプリの組み込み系のデータベースとして、SQLiteしか選択肢がなかった最近ですが、NoSQLのCouchbaseが「Couchbase Lite」という、モバイル用のNoSQLフレームワークをリリースしました(まだベータですけど)。
スマホ開発者の一員として、触らねばなるまいということで動かしてみました。 今回は、大体のCouchbaseLiteの特徴や使い勝手についてお伝えします。
そもそもCouchbaseってなんなのよ
Couchbaseは、ドキュメントベースのNoSQLで、よくMongoDBと比較の引き合いに出されます。 もともとはCouchDBというオープンソースデータベースがあり、それを商用版にしたのがCouchbase、という感じで考えてもらえればわかりやすいかと思います。
それじゃあCouchbase Liteって何者なのよ
そのCouchbaseみたいにモバイルデータベースを動かそう、というのがCouchbase Liteです。 実際にCouchbase Liteというデータベースが生成されるわけではなく、裏っかわではSQLiteがデータ保存をしています。 つまり、CouchbaseのようにSQLiteを操作するインターフェースやAPIをCouchbase Liteが提供している、というのが正しい考え方になるか思います。
Couchbase Liteの特徴
じゃあそのCouchbase Lite、こいつはSQLiteとどうちがうの?という話になってくるのですが、以下の様な特徴があります。
・JSON形式でのデータの取扱
Couchbaseが「JSON Everywhere」と提唱している通り、データ形式はJSONとなります。 実際に扱うと、それぞれのドキュメントは連想配列のオブジェクトとして扱われているため、データのパースなどの面倒くささがありません。
・同期が非常に簡単
Couchbaseはもともとレプリケーションがとても簡単なデータベースです。 その特徴をCouchbase Liteも引き継いでおり、とっても簡単にサーバー上のCouchbaseと同期することができます。
以前は、CouchDBとしかSyncできなかったのですが、今回SyncGatewayがリリースされ、それを介することでCouchbase ServerとのSyncも可能になりました。
・データ型・Date型なども簡単に保存が可能
Objective-Cで言う、NSDataやNSDateをそのまんま渡せば保存することが可能です。 NSDataに関しては自動でBase64に変換するように作られています。 なので、特にデータの変換を意識することなく、データを保存してくれます。
・ユーザごとの認証機能が付いている
まだ試してはいませんが、Facebookを使った認証機能なども付いているようです。 これもおいおい試してみようと思います。
大体は以下のスライドにも書いてあります。
サーバーサイドよくわからないけど、ウェブサービス作りたいモバイル開発者におすすめかも。
私自身がサーバー周りの開発はしない、という背景もありますが、サーバーサイドわかんない、面倒くさいという人にはおすすめだと思います。 アプリを作ろうとすると、やっぱりサーバーが必要で、認証が必要で、とサーバーサイドの悩みが増えてきて誰かやってくれる人いないかな~なんて考えているうちにやる気が失せていきます。(少なくとも私はそうです) だけど、Couchbase Liteは
- ローカルでDB保存 → 連想配列で簡単!!
- サーバー通信 → Syncすればそれでできる!
- ユーザー認証 → Couchbase Liteがやってくれる
- SQL?なにそれ美味しいの? → JSONならわかるよ!
あれ?なんだかいい感じ。
と言った感じで、モバイル開発者だけでサーバーサイドの実装なしにサーバ同期型のアプリは作成可能になりそう。
といったところで、今回はここまで。
次回は、Xcodeで実際にCouchbase Liteを動かしてみましょう。