iOSアプリと連携させて使えるデバイスたち

第5回 BLEを搭載したJawboneのリストバンド型デバイス「UP24」と連携するiOSアプリをつくる

この記事を読むのに必要な時間:およそ 5 分

はじめに

日本では2013年4月に発売され,売り切れ店続出,その後も品薄状態が続いたほどの人気を博した「Jawbone UP」ですが,つい先日,その後継となる「UP24」が発売されました。

UP24

UP24

新モデルの特長は,なんといっても「Bluetooth Smart」※1を採用したこと。これにより,ワイヤレスでのiOS/Androidデバイスの同期が可能となりました。

……と書くとケーブルで繋ぐ煩わしさが少し解消されただけ,という印象になってしまいますが,iPhoneやiPadのようなモバイルデバイスと連携するガジェットにおいては,⁠ワイヤレスで」⁠リアルタイムに」データ連携できるというのは,かなり重要な進歩ではないでしょうか。

本記事では,この「UP24」および前機種「UP」と連携するiOSアプリの実装方法を紹介します。

※1)
低消費電力通信規格「Bluetooth Low Energy」⁠BLE)に対応する機器の呼称。

UP24のデバイス仕様

UP24公式サイトのTECH SPECSページによると,

  • 重量はサイズごとに違っていて 19g~23g
  • バッテリーの持ちは7日間
  • 搭載されているセンサやインターフェースモジュール
    • Bluetooth 4.0 BLE
    • 3軸加速度センサ
    • カラーLED
    • バイブレーションモータ

とあります。

M7搭載iOSデバイスに対する優位性

BLEは通信用,LEDやバイブはユーザインターフェースとしての役割なので,上記のスペックだけみると,実質的には「リストバンド型加速度センサ」です。

3軸加速度センサはiOSデバイスにも昔からついているし,iPhone 5s以降の上位機種ではM7コプロセッサで省電力に,かつジャイロやコンパス等と統合的に,かつバックグラウンドでも処理してくれるようにもなったので,たとえば,5sユーザにとってはあまりUP/UP24を別途利用するメリットが薄いようにも思えるかもしれません。

しかし,当然のことながらiPhone 5sは腕には巻けないので,寝ている間ずっと身につけておくのはなかなか難しくなります。

また,加速度センサの生データを処理して睡眠状態を把握するのは,その分野の専門知識やデータ解析ノウハウが必要になってきます。

ですから,モーションアクティビティを利用可能なiOSデバイスユーザにとっても,UP24を利用する価値は大いにあるのではないでしょうか。

購入方法

Apple Store(JAPAN)Amazon国内正規品が販売されています。

UP Platform iOS SDKを用いたアプリの実装方法

公式アプリを使用したUP24の「一般的な使用方法」は本記事では省略し,以下ではJAWBONEからオフィシャルにリリースされている,「UP Platform iOS SDK」を使用して自作iOSアプリとUP24を連携させる方法を紹介します。

Client IDとApp Secretの取得

①サインイン

JAWBONEのデベロッパーサイトにサインイン(もしアカウントがまだなければサインアップ)します。

②Organizationを作成する

"Create an Account"メニューをクリックし,フォームに必要項目を入力(ロゴ画像のアップロードはオプション)して送信します。

③Appを作成する

Organizationが生成されると,"Create an Account"があった場所が,"Manage Account"というメニューになり,そこから"Create App"できるようになります。

フォームの必要項目を入力し,送信すると,Client IDとApp Secretが生成されるので,メモしておきます。

SDKをプロジェクトに導入する

GitHubのREADMEでは,UPPlatformSDK.framework(ビルド済みバイナリとヘッダファイルで構成される)をプロジェクトに追加するかたちでの導入方法が書かれているのですが,こういうプロダクトに付属のSDKとしては珍しく,ソース一式もリポジトリに含まれています。

デベロッパー側としては,ソースコードがあった方が何かと都合がいいので,本記事では.frameworkではなく,ソースコードを追加するかたちでの導入方法を紹介します。

①SDKを取得

GitHubリポジトリからSDKをcloneします。

$ git clone git@github.com:Jawbone/UPPlatformSDK.git

②プロジェクトに追加

リポジトリ内にある,"UPPlatformSDK"フォルダごとプロジェクトに追加します(UPPlatformSDK-Info.plistやUPPlatformSDK-Prefix.pchは不要なので削除してOK)⁠

③ヘッダをインポート

SDKを使用するビューコントローラで,ヘッダをインポートします。

#import "UPPlatformSDK.h"

④ログイン処理

前述した手順で取得したClient IDとApp Secretを定義しておき,

NSString *const kAPIClientID  = @"xxxx";
NSString *const kAPIAppSecret = @"xxxxxxxxxxxxxxxxxxx";

ログインボタン等をタップした際のアクション等の処理の中で,startSessionWithClientID:clientSecret:authScope:completion:メソッドを実行します。

[[UPPlatform sharedPlatform] startSessionWithClientID:kAPIClientID
                                         clientSecret:kAPIAppSecret
                                            authScope:UPPlatformAuthScopeAll
                                           completion:^(UPSession *session, NSError *error) {
                                               
                                               NSLog(@"error:%@, session:%@", error, session);
                                           }];

これにより,次のようにログイン用のUIが表示されるようになります。

ログイン画面

ログイン画面

startSessionWithClientID:~メソッドの第3引数"authScope"は,そのアプリで「どの範囲までユーザから許可をもらうか」を指定します(FacebookでいうPermissionのようなもの)⁠

たとえば上記では,UPPlatformAuthScopeAllを指定しているので,サインイン後の画面では,⁠読み書き可能なすべてのデータに対してのアクセス要求」が行われます。

アクセス要求画面

アクセス要求画面

著者プロフィール

堤修一(つつみしゅういち)

1978年生まれ。京都大学工学部を卒業後,同大学院修了。その後,NTTデータにて音声認識技術の研究開発,キヤノンにて画像処理機能の設計に携わる。

2010年より面白法人カヤックに入社。3年間ほぼiOSアプリ開発に専念し,フルスクラッチで開発しリリースしたアプリは30本以上。代表作は150万ユーザを突破した「バウンドモンスターズ」,AppStore Best of 2012を獲得した「タップ忍者」,カンヌ国際広告祭でブロンズを獲得した「Domino's App」など。

現在は,米国シリコンバレーのマウンテンビューにあるAppSocially社の一員として活躍中。

著書=『iOSアプリ開発 達人のレシピ100―開発現場で実証された実用コード集』

ブログ=Over&Outその後

Github=shu223

Twitter=shu223

コメント

コメントの記入