はじめに
iOS のローカルストレージをどれにしようか悩んでいたところ Couchbase Lite を見つけた。
RESTFul + JSON でサーバーとのやりとりがメインなので、相性が良さそうなので調べてみる事に。
色々と Couchbase Lite のほうが柔軟そうな気がしてきた。
MongoDB を使い始めた時ぐらいに、どっち使おうか悩んだ事を思い出した。
コミュニティーもしっかりしていて、信頼はそこそこできる。
MongoDB も使い慣れているので、Couchbase Lite で攻める事にしようかなと思った。
64bit 対応が多少面倒だけど、丁寧に wiki を追えば分かる。
ここで、Road Map が確認できる。
Developing Apps を一通り読めばだいたいやれることは分かる。
大分高機能で、ちゃんと使えれば良い感じかも。
基本的な機能は整っている感じ。
CouchbaseLiteListener 使って、peer-to-peer ぽいことも出来るし、遊べる感じ。
ダウンロード & インストール
- 最新版をダウンロード
- (2014/5/12 現在 Beta-3 で 64bit 対応 Framework は手作業)
- 64bit 対応方法は以下
- ソースをgitからclone
- Building Couchbase Lite
- 関連issue
// git clone して、submodule update して、以下のコマンドでコンパイル
// build/Release-ios-universal/CouchbaseLite.framework ができるのでそれを利用
$ xcodebuild -target "CBL iOS" -configuration 'Release 64bit'
- Linked Framework & Libraries に以下を追加
- CFNetwork.framework
- Security.framework
- SystemConfiguration.framework
- libsqlite3.dylib
- libz.dylib
- ビルドをしてみて、エラーがないか確認してエラーがなければOK
実装してみる
- ProjectNameAppDelegateヘッダーファイルに以下を追加
ProjectNameAppDelegate.h
# import <CouchbaseLite/CouchbaseLite.h>
...
- property を設定する
ProjectNameAppDelegate.h
@property (strong, nonatomic) CBLDatabase *database;
- application:didFinishLaunchingWithOptions: メソッドに以下を追加する
ProjectNameAppDelegate.m
// CBLManger の shared instance を作成
CBLManager *manager = [CBLManager sharedInstance];
// データーベースの作成
// データーベースの名前に使える文字は、小文字[a-z], 数値[0-9], 特殊文字[$_()+-/]
NSError *error;
// self.database = [manager createDatabaseNamed: @"database_name" error: &error];
// beta-3 で createDabaseNamed -> databaseNamed に変わった
self.database = [manager databaseNamed: @"database_name" error: &error];