LoginSignup
3
3

More than 5 years have passed since last update.

Ring ZERO の iOS SDK を Swift から使う

Posted at

photo
8/26 に,Ring ZERO の iOS SDK の β 版がリリースされました.ここ からダウンロードできます.早速 Swift から使ってみたのでまとめてみようと思います.

何ができるのか

これまでは,Open URI を用いて Ring のアプリ内で登録したジェスチャーを取得していました.すなわち,あるジェスチャーが認識されたら HTTP リクエストが送られるので,サーバ上で処理をおこなう必要がありました.なので,アプリ内でジェスチャーを受け取りたいような場合は,1度 HTTP リクエストを送ってそれを WebSocket で流すみたいなことをせざるを得なかったのですが,今回 SDK が出たことにより,アプリ内で直接ジェスチャーを取得できるようになりました.さらに,SDK ではジェスチャーはアプリ内に登録されたものを利用する形式になるので,Ring のアプリ内にジェスチャーを登録する必要がなく,サードパーティのアプリが非常に作りやすくなりました.(これまでは個人でジェスチャーを登録して遊ぶ程度が関の山でした) ただ 8/26 現在,まだ β 提供のため SDK を使ったアプリを一般公開することはできないようです.

現在は以下の 8 個のジェスチャーを使うことができます.現時点では自分で新しいジェスチャーを登録することはできません.

gesture

ちなみにこの画像は 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 など
    }
}
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3