Hatena::ブログ(Diary)

Over&Out その後 このページをアンテナに追加 RSSフィード Twitter

2014-06-22

【iOS8】いますぐ試せる HealthKit & HomeKit

iOS 8 の新機能の中でも個人的に気になったのが HomeKit と HealthKit。でも何ができるのか、実際どうやって使うのか、どこまでAPIが開発者に公開されてるのか、発表だけ聞いてもいまいちピンと来ません。


実際に自分で試してみるのが一番です。


そんなわけで、HealthKit、HomeKit を対応デバイスなしでいますぐ試す方法 について6/14日に開催された yidev 第15回勉強会で、表題の内容で発表してきました。


スライドはアップしないつもりだったのでKeynoteではなく Markdown でスライドをつくった のですが、世間的にWWDCの動画(今年のは一般公開されてる)ぐらいまでなら全然OKだよねっていう雰囲気っぽいのでここに内容を貼り付けておきます。


自己紹介

  • フリーランスiOSデベロッパー
  • ブログ:Over&Out その後
  • 著書:iOSアプリ開発 達人のレシピ100


HealthKit

HealthKit でできること

  • 健康、運動データの保存、アクセス
  • セキュリティ、プライバシー設定
  • 検索、統計クエリ
  • 単位変換
  • 新データの通知
  • アクセサリーの統合

とりあえずデバイス繋いで使ってみる

HealthKit デバイスの接続方法

  • APIを探しても見当たらない
  • WWDCセッション動画 "Introducing HealthKit"を見ても見当たらない

iOS8に標準で付いてくる "Health" アプリを利用する


f:id:shu223:20140623070334p:image:w300


対応デバイスを用意する

HealthKit 対応デバイス

"HealthKit対応"を謳ったものは当然まだない


→ BLEの標準プロファイルをサポートしてるので既存デバイスで普通に繋がる

  • Heart Rate Monitor
  • Glucose Sensor
  • Blood Pressure Monitor
  • Health Thermometer

対応デバイスを買いたくない

わりと高い。。


対応デバイスを代用する

iPhoneでエミュレートする
  • Core Bluetooth で実装する
  • アプリを使用する(例:LightBlue)
BLEモジュールにファームを書き込む
  • 例:BLE113 Development Kit

参考:BLE112 / 113 の開発環境を Mac に構築する - Over&Out その後


デモ


公式サンプル "Fit" のビルド方法

【iOS8】HealthKit の Apple 公式サンプルを実機で動作させようとすると出るエラーの対処方法 - Over&Out その後


参考資料

動画
  • Designing Accessories for iOS and OS X (701)
  • Introducing HealthKit (203)
Dev Center
  • HealthKitのサンプルコード
  • クラスリファレンスはまだない

HomeKit

HomeKitとは?

  • 各種アクセサリを独自のプロトコルで統一する
    • アクセサリ:鍵、照明、カメラ、ドア、サーモスタットetc...
  • ユーザ別にデバイスを制御する方法や、デバイスをGroup化して制御する機構を提供する

f:id:shu223:20140623071158p:image:w500


デバイス接続手段

  • Bluetooth Low Energy
  • IP

HomeKit Accessory Profiles

f:id:shu223:20140623070906p:image:w500

  • → Service, Characteristicって、BLEのGATTベースプロファイル?
  • NO!

HomeKit Accessory Protocol Layers

f:id:shu223:20140623070646p:image:w500


BLE の GATT、IP の JSON をラップする独自プロトコル


プロトコルやプロファイルの仕様は?

f:id:shu223:20140623070725p:image:w500


要MFi


では、試せないのか?

Home Kit Accessory Simulator

起動方法

[Xcode] > [Open Developer Tool] > [Home Kit Accessory Simulator]


新規アクセサリ作成

[+] > [New Accessory]


f:id:shu223:20140623072048p:image:w600


  • サービス追加
    • Add Light Bulb
    • Add Garage Door Opener
    • Add Thermostat
    • Add Lock
    • Add Switch
  • 有効化
    • スイッチをONに

f:id:shu223:20140623071114p:image:w600


同じ WiFi 内ならこれでアクセサリとして HMAccessoryBrowser から発見できる。


実装方法

(実はこれはプレゼンでは説明してないのですが、簡単に。)

マネージャ生成
self.homeManager = [[HMHomeManager alloc] init];
self.homeManager.delegate = self;
家を生成
[self.homeManager addHomeWithName:@"First Home"
                completionHandler:^(HMHome *home, NSError *error) {
                    
                    if (error) {
                        NSLog(@"error:%@", error);
                        return;
                    }
                }];
部屋を生成して家にaddする
[home addRoomWithName:@"First Room"
    completionHandler:^(HMRoom *room, NSError *error) {
        
        if (error) {
            NSLog(@"error:%@", error);
        }
        else {
            NSLog(@"success!");
        }
    }
];
アクセサリ(周辺デバイス)を探す
self.accessoryBrowser = [[HMAccessoryBrowser alloc] init];
self.accessoryBrowser.delegate = self;

[self.accessoryBrowser startSearchingForNewAccessories];

デリゲートメソッドまわりは省略。


Siri連携

(口頭で話しただけ)


参考資料

動画
  • Designing Accessories for iOS and OS X (701)
  • Introducing HomeKit (213)
Dev Center
  • Home Kit の各クラスリファレンス
  • サンプルはまだない

See Also


ご清聴ありがとうございました!


スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

2009 | 08 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2015 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 12 |
2016 | 01 | 02 | 03 | 04 | 05 | 06 | 07 |