WWDC24:サードパーティもアクセサリセットアップ時に「アクセサリーピッカー」が利用可能に
※本サイトは、アフィリエイト広告および広告による収益を得て運営しています。購入により売上の一部が本サイトに還元されることがあります。
Appleが、WWDC24において「AccessorySetupKitについて」を公開しています。
iOS 18、iPadOS 18から利用可能になる「AccessorySetupKit」は、BluetoothとWi-Fiでアクセサリをセットアップして管理するための、合理的でプライバシーに配慮したアプローチをあなたのアプリケーションに提供する、まったく新しいフレームワークです。
APIを呼び出すだけで、あなたのアプリがペアリングしたい近くにあるアクセサリーが真新しいアクセサリーピッカーに表示されます。
ピッカーには、あなた自身の忠実度の高いアートワークとアクセサリーのフレンドリーな名前が表示されます。
1回タップするだけで、アクセサリーはアプリと安全にペアリングされ、使用できるようになります。
このワンタップで、BluetoothとWi-Fiの両方に対応しているアクセサリであれば、BluetoothとWi-Fiの両方にアクセスできるようになります。
あなたのアプリは、アクセサリとの通信に同じCoreBluetoothとNetworkExtension APIを使い続けることができます。
設定のプライバシーとセキュリティ>アクセサリは、AccessorySetupKitを通じて管理されるすべてのアクセサリの新しいホームです。
各アクセサリの詳細ページでは、製品画像、表示名、ハードウェア名により、アクセサリを簡単に識別できます。
ユーザは、アクセサリ名を変更したり、ペアリングされたアプリのアクセスを切り替えたり、システムから削除したりできます。
新しくデザインされたアクセサリページは、アクセサリがサポートするテクノロジーに応じて、Bluetooth設定とWi-Fi設定にも表示されます。
iOS 18とiPadOS 18では、AccessorySetupKitはBluetoothとWi-Fiアクセサリーをサポートしています。
これまでは、アプリがアクセサリーを検出し接続するために、Bluetoothの使用を要求していた。
アクセサリーがブロードキャストしているWi-Fiネットワークにアプリが参加するには、別のリクエストが必要です。また、Bluetoothのペアリング要求も追加される可能性があります。
それに比べ、AccessorySetupKitは、あなたとあなたの顧客の両方にとって、すべての摩擦を取り除きます。
ワンタップでアクセサリーはあなたのアプリとペアリングされ、あなたのアプリはBluetoothとWi-Fiの両方にアクセスできるようになります。
また、新しいアクセサリピッカーでは、アクセサリのフレンドリーな名前と製品画像が表示され、アクセサリが無線で宣伝しているハードウェア名も表示されるため、人々はセットアップをタップする前に、そのアクセサリが本物であることを確認することができます。
これは、AccessorySetupKitのプライバシーに配慮したデザインによって実現されています。
あなたのアプリの上に表示されるアクセサリーピッカーは、別のプロセスで実行されます。
あなたのアプリは、検出ルールとアセットをピッカープロセスに送信します。
これらのルールは、BluetoothとWi-Fiの両方のインターフェイスを持つように設定できるので、1つのセットアップフロー内でアクセサリに必要なすべての通信アクセスを取得できます。
検出されたアクセサリーはピッカーに表示され、ワンタップでアプリとペアリングできます。
AccessorySetupKitで最初に出会うクラスはASAccessorySessionです。
これはアクセサリピッカーを表示し、イベントを通知し、アクセサリを管理する中心的なオブジェクトです。
ASAccessorySessionにピッカーの表示を依頼する場合、ASPickerDisplayItemオブジェクトの配列を提供します。
ASPickerDisplayItemは、アクセサリの名前と画像、そしてアクセサリのスキャン方法をシステムに伝えるためのディスカバリ記述子を定義します。
これで、ASAccessorySessionのshowPickerを呼び出して、ピッカー処理での検出と認可を開始できます。
表示項目を作成するには、商品名、商品画像、およびディスカバリーディスクリプタが必要です。
ASDiscoveryDescriptorクラスを使用すると、必要なすべてのディスカバリールールを1つの複合オブジェクトにまとめることができます。
システムはスキャンされた結果を記述子内のすべてのルールとマッチさせ、気になるアクセサリーを正確にフィルタリングします。
ASDiscoveryDescriptorは、BluetoothサービスUUIDやWi-Fi SSIDのようなカスタマイズ可能なフィールドがたくさんあり、非常に柔軟です。
ASAccessory クラスは物理的なアクセサリを表します。
アクセサリの認可状態、表示名、発見記述子、そしてCBPeripheralのBluetooth識別子、Wi-Fiネットワークをブロードキャストする場合はWi-Fi SSIDを含むすべてのネットワーキング・インターフェースを持ちます。
accessoryAddedイベントのASAccessoryオブジェクトで、CoreBluetoothを使ってBluetoothペリフェラルに接続できます。
いつものようにCBCentralManagerを作成し、Info.plistでAccessorySetupKitのサポートを宣言したので、以前のバージョンのiOSとは異なり、Bluetoothの使用許可を求められることはありません。
アクセサリーピッカーでは、180×120のコンテナボックスに商品画像を入れることができます。
画像のピクセル解像度が十分であることを確認し、あらゆる縮尺の画面で鮮明に見えるようにしてください。
ライトモードとダークモードの両方でアセットがどのように見えるかを必ずテストしてください。画像の背景は透明にして、どちらのモードでもきれいに見えるようにしましょう。
画像の周囲にある透明な境界線を活用してください。
システムは画像全体をコンテナボックスに合わせて拡大縮小するので、透明ボーダーが広ければ広いほど、画面上のアクセサリーは小さく表示されます。
ピッカーUIで最適なサイズの画像を表示するために、透明ボーダーを調整しましょう。