概要
Couchbase Liteはモバイル用のNoSQLデーターベースです。
iOS版はObjective-Cで記述されたライブラリですが、Swiftアプリケーションからも利用出来ます。
Swift2.0でCouchbase Liteを動かす手順を書きます。
動作環境
- Xcode 7.2
- OS X El Capitan (10.11.2)
CocoaPodsがインストールされている事が前提です。
プロジェクトの作成
Xcodeのメニューから [File] > [New] > [Project] を選択
今回はシンプルな Single View Application を選択します。
Language に Swift を選択します。
プロジェクトを作成したら一度 Xcode を終了します。
Couchbase Liteのインストール
CocoaPods経由でインストールするのが簡単です。
ターミナルから、先ほど作成したプロジェクトディレクトリに移動してPodfileを作成します。
$ cd /path/to/your/app
$ pod init
Podfileをエディタで開いて couchbase-lite-ios
を追加します。
バージョンはCocoaPodsのサイトで確認出来ます。クリップボードアイコンをクリックするとコマンドをコピー出来ます。
target 'Sample' do
pod 'couchbase-lite-ios', '~> 1.1'
end
ターミナルから下記コマンドを実行してCouchbase Lite をインストールします。
$ pod install
Podsディレクトリとワークスペースファイル(*.xcworkspace)が生成されます。
Xcodeの設定
生成されたワークスペースファイルをダブルクリックしてXcodeを起動します。
ビルド確認
実機の場合、Couchbase Liteのバージョンによっては、下記のようなエラーが出る場合があります。
シミュレータの場合は関係ありません。
ld: 'CouchbaseLite' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target.
その場合は [Build Settings] > [Build Options] > [Enable Bitcode] を NO にしてください。
Re-release 1.1.1 built with Xcode 7, for bitcode support
ブリッジヘッダーの作成
SwiftからObjectiveCのコードを参照するには、ブリッジヘッダーを用意する必要があります。
[Build Settings] > [Swift Compiler - Code Generation] > [Objective-C Bridging Header] でブリッジヘッダーを指定しますが、簡単な方法があります。
Xcodeのメニューから [File] > [New] > [File] を選択
Objective-C File を選択します。
ファイル名は後で削除するので適当で構いません。
[Create Bridging Header]を選択します。
プロジェクトにブリッジヘッダーが追加され設定も反映してくれます。
作成したObjective-Cファイルは削除します。
ブリッジヘッダーにCouchbase Lite のヘッダーをインポートします。
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import <CouchbaseLite/CouchbaseLite.h>
以上でCouchbase Lite が使える準備が整いました。
テストコード
実際に使えるかどうか、簡単なテストコードを書いてみます。
Swift2.0の記述なのでご注意ください。
import UIKit
class ViewController: UIViewController {
var database: CBLDatabase?
override func viewDidLoad() {
super.viewDidLoad()
do {
try test()
} catch let error {
print("\(error)")
}
}
func test() throws {
let manager = CBLManager.sharedInstance()
try self.database = manager.databaseNamed("test")
let properties = [
"name": "taro",
"age": 30
]
let doc = self.database?.createDocument()
let ret = try doc?.putProperties(properties)
print("ドキュメントID=\(ret!.document!.documentID)")
let count = self.database?.documentCount
print("ドキュメント件数=\(count!)")
}
}
ビルドして実行してみます。
デバッグコンソールに登録したドキュメントIDとデータベース内のドキュメント件数が表示されます。
アプリを終了して再実行すると、ドキュメント件数が増えているのが確認出来るはずです。
最後に
2015年12月、Swiftがオープンソースとして公開されました。
今後ますますSwiftコードで書かれたアプリケーションが増えていくでしょう。
Couchbase Mobile Developサイトには、Swiftコードのサンプルが豊富にあります。
参考にしてみてください。