ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
Core Bluetoothの新機能
Core Bluetoothのプライバシー強化のための変更点を導入する方法を理解しましょう。このセッションでは、LE 2Mbps、アドバタイズの拡張、BR/EDR、デュアルモードデバイスによる新しい可能性について紹介します。PacketLoggerの向上点によって、Core Bluetoothとのコミュニケーションをデバッグする方法についてご確認ください。
リソース
関連ビデオ
WWDC19
-
ダウンロード
(音楽)
(拍手)
来てくれてありがとう 私はドゥイ・ファン Core Bluetoothの新機能を 紹介しに来ました
導入から入り― LE 2 Mbpsと拡張アドバタイズの話へ 次にBR/EDRデバイス用 Core Bluetoothの概観 そしてデュアルモードやプライバシー デベロッパツールの話をします
では導入です
初耳という方のために Core BluetoothはBluetooth LEの 仕様とハードウェアの概念です 我々はデベロッパに 簡単で堅牢な手法を提供し― Bluetoothデバイス用 アプリケーションの開発を助けています Bluetoothは多くのアクセサリと アプリケーションに使われています 健康管理用デバイスから indoor locationingに加え― 作成用ツールや子供向けのオモチャ― 家電 水筒 マグカップに至るまで Bluetoothが用いられています デベロッパの創造性と努力は Bluetoothの生態系を作り上げました 活気あふれる革新的な空間です (拍手) まだ他にも こちらのデバイスも 繁栄し成長していますが― Core Bluetoothに非対応なので あまり話す機会がありません これらはBluetooth BR/EDRデバイス ストリーミング音楽再生用デバイスや ハンズフリー車載システム― マウス キーボード ゲームパッドなどがあります Core Bluetoothのデベロッパは 対応したアプリケーションを― 開発できずにいました
今まではね 今年からBR/EDRデバイスに対応します (拍手) ありがとう (拍手) これによりCore Bluetoothは― 通信方式に関わらず すべてのデバイスに対応できます デュアルモードになることで 性能が格段に上がりました
デベロッパがこれを利用し― アクセサリやアプリケーションを 構築するのを期待しています
今年はテーマが3つあります 1つは例年通り技術の改善 それからプライバシー保護と より良いデベロッパツール
まずはCoreテクノロジーと LE 2通信速度の改善について
LE 2 MbpsはBluetooth 5.0の特徴です
物理層レートが 1 Mbpsから2 Mbpsまで増加しました
通信時間が同じ場合― 2倍のビット数を転送でき 通信速度だけでなく電力効率も良い
さらに良いのはその透過性です 動作環境に基づき リンク層ネゴシエーションを扱います
アクセサリ開発には自身のアクセサリも LE 2 Mbpsに対応する必要があります
対応機種はiPhone 8に始まり iPhone 8 PlusやiPhone X― Apple TV 4K そしてApple Watch Series 4
様々なモードにおける 1 Mbpsのグラフです
2 Mbpsはこうなります (拍手) 大きな飛躍を遂げたのが分かります
今年はアドバタイズも拡張しました
これはBluetooth 5.0の特徴です アドバタイズには3つの点で 改善がなされました 1つ目は3つのチャンネルにおける 輻輳の緩和 ペイロードが軽くなりました
チャンネルも広くなり大きな ペイロードが送信可能になりました 31バイトから255バイトまで拡張し― LE 2 Mbpsという通信速度が 可能になりました
Core Bluetoothは 拡張スキャンに対応する予定です
拡張アドバタイズのスキャンは 今の段階でも可能です
しかしLE 2 Mbpsで転送される アドバタイズだけをスキャンしたい そのため開発者のアクセサリも LE 2 Mbpsに対応する必要があります
我々は現在124バイトまでの ペイロードに対応しています
今までのアクセサリの 4倍のデータ量です
再び透過性の話ですが 同じAPIとフィルタを使用できます
過去のアドバタイズにも対応します
プラットフォームをサポートする 新しいAPIがあります
iPhone XSと新しいiPad Proが これに対応しています
拡張されたコネクションにも 対応する予定です
拡張されたアドバタイズに 接続可能になります
現在のコネクションの プロトコル交換も改善されました
今までのコネクションでは接続可能な アドバタイズを使用しています
スキャナは接続識別を送信します
ACKはありません
スキャナは接続指示が アドバタイザに届いたと仮定します そして新しい接続があったことを ホストプロセッサに伝える
しかし接続指示が 届いていない場合もある スキャナとアドバタイザの 周波数特性が違うこともあるし― そもそも周波数環境は動的です
このためプロセッサは不必要な起動を 繰り返す可能性があります
アプリケーションやアクセサリの使用で バッテリーを酷使することになります しかしこの点は改善されました
アドバタイザは拡張された アドバタイズメントを行います
スキャナは接続をリクエストし―
アドバタイザは 明確にレスポンスを返します スキャナがレスポンスを 受け取った時だけ―
プロセッサに新たな接続を伝えます
リンク層ネゴシエーションをスキップし LE 2 Mbpsからスタートできます
接続は強固になり 電力効率も上がりました
同じAPIで接続しても 透過性は失われません どちらのアドバタイズメントにも 接続できます
ただアクセサリも 拡張アドバタイズメントに 対応しなければなりません
プラットフォームをサポートする APIを用意しました iPhone XSと新しいiPad Proにも 対応しています
ここからはイロクが ER/BDRサポートについて話します ありがとう (拍手)
ありがとう ドゥイ BR/EDRデバイス向けCore Bluetoothの 新機能についてお話します
2012年に我々はGATTという 抽象化レイヤを作りたいと言いました 今やSIG認証プロトコルです 階層をベースにサービスと キャラクタリスティックから成り― 読み取りや書き出し 変更の通知が容易にできます 心拍数モニターやオモチャなど 多様なアクセサリが― 世界中でいとも簡単に作られています Core Bluetoothを使って― すばらしいアプリケーションが 作成されてきました 聞いたと思いますが― 今年からCore Bluetoothが BR/EDRデバイスに対応します これには車載のものから スピーカーやヘッドフォンまであります 対応方法は?
この図は 2つの通信方式から成っています システムプロファイルや オーディオ機器― A2DPやHFPといった プロファイルを動かします LEではCore Bluetoothを GATT上で動かします これはアクセサリを使う際の フレームワークになっていました 今年 これらを統合しました 何もしなくても BR/EDRとLEの両方にアクセスできます
したがって APIをほとんど変えることなく― BR/EDRとLEを取り扱うことができます
BR/EDR向けCore Bluetoothを 見てみましょう
BR/EDRデバイスでGATTが使えます 全く同じプロトコルを動作させます したがって仕様はBluetooth SIGの ウェブサイトで見られます
アプリケーションとデベロッパから見て CBPeripheral APIは全く同じです 同じサービスディスカバリが使えて 変更の通知も受け取れます
CBCentralManagerに 新しい変更がありました デバイスがUIDと接続した時に 通知させることができます 後で詳しく話します
BR/EDR用Core Bluetoothは今週から iOS 13 watchOS tvOSで入手できます
GATTはソフトウェア層プロトコルなので 新しいハードウェアは不要です ソフトウェアかファームウェアの 更新で済みます
次は新しいAPIです
ForConnectionEventsの登録には 既知のサービスかUIDを登録します Heart Rate Serviceのようなものです
registerForConnectionEventsを 呼び出し― UID型に合わせた CBCentralManagerに渡します
マッチングオプションを見つけたら デリゲートを返します
これにCBPeripheralと 接続イベントの型が含まれています
単純ですね アプリケーションから 見るとどうなるでしょう
CBCentralManagerを インスタンス化し―
既知のUIDを渡します
BR/EDR接続の場合― ユーザはBluetooth設定と デバイス検索をします この例では心拍用ヘッドセット
デバイスを発見し接続を試みる
ペアリングし接続されるとGATTの service discoveryが作動します サービスが見つかると デリゲートを返します
これまでのCore Bluetoothと ほぼ同じです
それから接続イベントを操作し 与えられたperipheralで接続します
コード全体です まず初期化し―
CBCentrallManagerで 接続イベントを登録
そしてデリゲートを操作します デバイスを接続する場合は connectを呼び出し フィルタ登録を解除できます
発信接続についてです 既知の装置がありそこに接続します BR/EDRデバイスに接続できます この場合もCBCentralManagerを インスタンス化し―
接続します これは以前から CBCentralManagerにありました
BR/EDRデバイス接続を呼び出し― アプリケーションがフォアグラウンドに あるなら接続を試行します デバイスを探し接続されれば―
デリゲートを返します 単純です
BR/EDRデバイス用APIについて 見てきました デュアルモードへの 改善について見ていきましょう これはLEとBR/EDRの同時使用のことです
デュアルモードではアプリケーションや アクセサリを開発すると― ユーザがBluetoothを設定する際の 入り口が2つになります LEとBR/EDR これに困惑するユーザもいます
この困惑の緩和に努めてきました
Cross Transport Key Derivationへの 適応を始めています Bluetooth 4.2のSIG認証仕様です 1つのペアリングから 他方のリンクキーを引き出せます
デバイスは1つの CBPeripheral識別子を持つので― デバイスの伝送方法を 気にする必要はありません 完全に透過的です
1つのペアリングを 2つのデバイスに適用でき― LEとBR/EDRをシームレスに使えます
ユーザがデバイスや アプリケーションを使う前に― 2つのデバイスがあっても これからは1つだけ見ればよいのです (拍手) ありがとう
Cross Transport Key Derivationを 利用しペアリングを改善できます 検索とペアリングを ユーザに代わって行うことを考えます ユーザがBluetoothを設定し スキャンする代わりに― アクセサリから LEアドバタイズメントを検索できます
デバイスを見つけたら Connectを呼び出し― LE上で接続し安全にアクセスできます
一度ペアリングすると LEキーとBR/EDRキーが取得できます
したがって―
ユーザを困惑させるペアリングを 表示させずにBR/EDR接続ができます すべてApp内で行われます
次はデュアルモード接続の 改善についてです 一例として 家庭用オーディオ機器を考えます アプリケーションを使って 接続を行い― 近くにあるデバイスで メディアを再生するとします
ユーザが音楽や ポッドキャストを聴く時― iOSがBR/EDRチャンネルを 提示するようにしたい そこでBridgingという コンセプトを取り入れました
LEを利用してA2DP HFP AVRCPのような BR/EDRプロファイルを引き出すのです
Cross Transport Key Derivation対応の すべてのデバイスで簡単に動きます
新しいキーを CBManagerConnectで使えます TransportBridgingKeyです
オプションディクショナリに加えます
するとデバイスへLE接続が試行されます 発見したら直ちにBR/EDRに書き出し― できる限り多くの プロファイルに接続します
すべてのマルチメディアの プロファイルをシームレスに使えます
(拍手)
Coreテクノロジーの改善については これで終わりです プライバシーについてはメグナから ありがとう 昨年だけで 多くのアプリケーションが― プライバシー侵害に当たるとして App Storeから削除されました Core Bluetoothでそのようなことを 避けるためお話に来ました
こんにちは 私はメグナ・ラブ Core Bluetooth APIの プライバシーアップデートのお話です
プライバシー問題は 以前よりも重要になっています ユーザの意識が高まっています
Appleではプライバシーを 基本的人権と捉えています ティム・クックが言ったように― 人権の保護は我々の集団責任です
デベロッパはユーザの生活に 大きな影響を与えます ユーザは信頼してデータを委ねます デベロッパも我々とともに 信頼を維持する責任を負っています
今年はCore Bluetoothの プライバシー保護に注力しています ユーザ許可とアクセサリ通知です
ユーザ許可の働きについて 見ていきましょう
iOS 12ではCBPeripheralManagerを インスタンス化し― アドバタイズしたい場合 ユーザ許可を得ることを要求しました
今年からアプリケーションで Core Bluetooth APIを使用する場合― ユーザ許可を要求します
古いSDKで構築されているものも 例外ではありません 許可を認証する場合 設定Appで許可するか変更できます Bluetoothプライバシーのペインか Appの仕様設定からも可能です
iOS watchOS tvOSで要求されます
watchOSにおけるユーザ許可とは? アプリケーションが watchOSの延長上で動作するなら― 許可はiOSとwatchOSで共有されます ユーザは一度承認すればいい watchOS上で独立しているものは また別です
アプリケーションでユーザ許可を 承認するにはどうすればいいでしょう?
まずはアプリケーションの Info.plistを開き― Usage Descriptionの 文字列を追加します これをすべき理由が3つあります 第一にこれでユーザにBluetoothを 使用する理由を伝えられます
第二にこれを書き込まないと アプリケーションをローンチできません コンソールでエラーが出ます
第三にアプリケーションの審査では Usage Descriptionが― 有意義なものであるか確認します
コードを見てみましょう 新しくauthorizationプロパティを 作りました ユーザがアプリケーションを 許可したかを通知し― 開発者に確認を促します Core Bluetoothの流れを見てみましょう
まず行うのはCBCentralManagerか CBPeripheralManagerの― インスタンス化です 最初に受け取るコールバックは ManagerDidUpdateStateです Managerの準備ができているか 値を確認できます CBManagerStateの値が不許可の場合― Authorizationプロパティで ユーザの許可状況を見られます
今このようなコードなら― ManagerStateの値を1つか2つだけ 見ている状態です 10分間ほど使って このように書き変えてみてください ManagerStateの あらゆる値が確認できます ユーザ許可を スムーズに取り入れられます
このコードはサンプルで手に入ります 詳細はインフォメーションセクションで
次はアクセサリの通知について
Apple Notification Center Service (ANCS)では― GATTのサービスでアクセサリに iOS NotificationCenterから― システムと通知を与えます
もっとANCSを知りたい方は― developer.apple.comで 詳細が見られます
プライバシーのアップデートは アクセサリと通知を共有するために― ユーザの許可が必要です ユーザがiOS 13に アップデートする際― アクセサリで通知の調整をするなら この認証画面をユーザに示します ユーザが一度決定すると デバイスの仕様に合わせて調整します
関連のある時にアプリケーション内で この認証画面が出た方が― ユーザは分かりやすいでしょう この体験のために 新しいプライバシーAPIを作りました
CBCentralManagerにおいて― ANCSに接続している 周辺機器が分かっていれば― CBConnectオプションを使えます
接続とペアリングに成功すると― アプリケーション内で 許可通知を出します 許可通知に反応すると デリゲートをコールバックします ANCS許可の変更が伝えられます ancsAuthorizedを使って 値をフェッチできます
ユーザ許可と通知についてのお話でした プライバシー管理機能は これだけではありません アプリケーション上でどう動くか 見ていきましょう
まずCore Bluetooth APIが起動するのは 要求された時と― ユーザに関連する時
次にスキャンとアドバタイズは 時間が限られています アドバタイジングするとユーザの スマートフォンから情報が共有され― 期間を限定することで ユーザの信頼を育てます
スキャンフィルタをできるだけ 特有なものにして― 関連のUUIDだけを探しましょう
最後になぜCore Bluetothに アクセスする必要があるか示しましょう ユーザは正しい判断を下せるでしょう
プライバシーについて もっと知りたい方は― 今年と前年のWWDCセッションでも お話していますのでご覧ください
ユーザのプライバシー保護のことを 考えて― アプリケーションの 設計と実行をしましょう
次はドゥイから デベロッパツールのお話です ありがとう (拍手) ありがとう Core Bluetooth PacketLoggerに 追加した新たな機能について話します
Core Bluetooth PacketLoggerは パケット解析アプリケーションです
ログインプロファイルを iOSにインストールすると― sysdiagnoseが起動し PacketLoggerファイルを開きます
BluetoothとAppleによって定義された プロトコルをデコードできます そしてエラーを表示し 起こり得る危険について警告します
信頼できる接続やプロトコルで フィルタをかけられます
テキストや正規表現で検索し― パケットに コメントやフラグを立てられます 解析のために データのエクスポートもできます
ダークモードのトップレベルです (拍手) この例ではACIとATTプロトコルだけに フィルタをかけています
しかしパケットをクリックすると― プロトコル階層が見られます
個々のプロトコルを調べられ―
最下層まで見られます
今年はLive Captureと呼ばれる 機能を追加しました (拍手) iOSデバイスにログインプロファイルを インストールしMacに接続すると―
PacketLoggerでiOSデバイスと アクセサリの伝送路を把握できます
(拍手) ありがとう (拍手)
複数のデバイスに接続し 通信中の様子を把握できます デバッグがより インタラクティブになり― 問題の早期解決が図れます
次はLive Captureの セットアップ方法です iOS 13 developer betaと logging profileをインストールし― PacketLoggerを起動します
iOSデバイスをMacに接続し―
PacketLoggerアプリケーション中の “New iOS Trace”を選択します
(拍手) ありがとう (拍手) 動作中のLive Captureを表示する インジケータもあります
PacketLoggerは― Additional Tools for Xcode内で ダウンロードできます 詳細ページにリンクがあります
パッケージのハードウェアフォルダに 入っています
MacOS Catalinaで性能を発揮します
要約します
開発には最新のBluetoothを搭載した チップセットを使い― LE 2 Mbpsのような省電力と 拡張アドバタイズを利用してください
BR/EDRデバイス向け アプリケーションの開発ができます 新たなアプリケーションやアクセサリが 開発されるのが楽しみです
そしてユーザのプライバシーと 信頼を守りましょう
developer betaを試してみてください アップグレードの際ユーザに 問題が起きないようにしましょう ヘルプを用意しています 問題が起きたら我々と解決しましょう
アクセサリデザインの ガイドラインに目を通してください ベストなアクセサリ開発に 役立つはずです
フィードバックアプリケーションで Appleはあなたをお手伝いします
質問のある方は4時に Core Bluetooth Labに ありがとう (拍手)
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。