8/26 に,Ring ZERO の iOS SDK の β 版がリリースされました.ここ からダウンロードできます.早速 Swift から使ってみたのでまとめてみようと思います.
何ができるのか
これまでは,Open URI を用いて Ring のアプリ内で登録したジェスチャーを取得していました.すなわち,あるジェスチャーが認識されたら HTTP リクエストが送られるので,サーバ上で処理をおこなう必要がありました.なので,アプリ内でジェスチャーを受け取りたいような場合は,1度 HTTP リクエストを送ってそれを WebSocket で流すみたいなことをせざるを得なかったのですが,今回 SDK が出たことにより,アプリ内で直接ジェスチャーを取得できるようになりました.さらに,SDK ではジェスチャーはアプリ内に登録されたものを利用する形式になるので,Ring のアプリ内にジェスチャーを登録する必要がなく,サードパーティのアプリが非常に作りやすくなりました.(これまでは個人でジェスチャーを登録して遊ぶ程度が関の山でした) ただ 8/26 現在,まだ β 提供のため SDK を使ったアプリを一般公開することはできないようです.
現在は以下の 8 個のジェスチャーを使うことができます.現時点では自分で新しいジェスチャーを登録することはできません.
ちなみにこの画像は SDK で取得することができます.以下はハート CR_POINTS_HEART
の画像です.
CRCommon.imageWithPoints(CR_POINTS_HEART,
width: imageView.frame.width,
lineColor: UIColor.lightGrayColor(),
pointColor: UIColor.lightGrayColor())
コードサンプル
ちょっとしたサンプルを書いておこうと思います.以下は起動時の処理です.viewDidAppear
あたりに書きましょう.
let gestureDict = ["circle": CR_POINTS_LEFT, "pigtate": CR_POINTS_RIGHT,
"heart": CR_POINTS_DOWN, "triangle": CR_POINTS_UP]
if let ringApp = ringApp {} else {
ringApp = CRApplication(delegate:self, background: false)
if ringApp!.installedGestureIdentifiers().count == 0 {
var error: NSError?
// 1度ジェスチャーをインストールすると,アプリを削除しない限り更新できない
if !ringApp!.installGestures(gestureDict, error: &error) {
println(error!.localizedDescription)
return
}
}
ringApp!.setActiveGestureIdentifiers(gestureDict.keys.array)
ringApp!.start()
}
以下はジェスチャー認識時に呼ばれる delegate です.ジェスチャーに対応する key が返ってきます.
func didReceiveGesture(gesture: String!) {
if let gesture = gesture {
println(gesture) // circle など
}
}