iOSでのBluetooth通信入門 :CoreBluetooth プログラミングガイド 解説 : はじめに

bluetooth-ios_001

目次 > Core Bluetoothについて

 

Core Bluetoothについて

Core Bluetoothフレームワークには、iOS/Macアプリケーションが、Bluetooth Low Energy(BLE)という省電力無線通信技術を実装したデバイスと通信するために必要なクラス群があります。アプリケーションは、心拍モニタ、デジタルサーモスタットなどの周辺機器(ペリフェラル)を検出、調査し、情報をやり取りできることになります。OS X v10.9およびiOS 6以降、Mac/iOSデバイス自身もBLEペリフェラルとして機能し、他のデバイス(Mac/iOSデバイスを含む)にデータを提供できるようになりました。

cb_01

 

はじめに

BLEという省電力無線通信技術は「Bluetooth 4.0」仕様に基づいています。省電力デバイス間で通信す るための、各種プロトコルを定義している仕様です。Core Bluetoothフレームワークは、BLEプロトコ ルスタックを抽象化しています。仕様のうち低階層に当たる詳細を隠蔽して、BLE機器とデータをや り取りするアプリケーションを、容易に開発できるようにしているのです。

Core Bluetoothではセントラルとペリフェラルが重要な役割を果たす

BLE通信には、セントラル(中央装置、Centrals)とペリフェラル(周辺装置、Peripherals)が関与します。 両者はそれぞれ異なる役割を担います。ペリフェラルには通常、他のデバイスが必要とするであろうデータがあります。セントラルは、ペリフェラルから提供される情報を使って、何らかのタスクを実 行します。たとえばBLE技術搭載デジタルサーモスタットは、室温データをiOSアプリケーションに提 供します。アプリケーションはこのデータを見やすく表示します。

それぞれの役割の違いに応じて、実行するタスクも異なります。ペリフェラルは自身の存在を知らし めるため、電波を使って周囲に「広告」を出します(「アドバタイズ」と言います)。一方、セントラ ルは、必要なデータを提供してくれるペリフェラルがないか走査します。該当するペリフェラルを検 出すると、接続を要求し、データのやり取りを始めます。一方、ペリフェラルは適切な方法で、セン トラルに応答します。

関連する章:   “Core Bluetoothの概要”

Core Bluetoothを導入すれば、Bluetoothを扱う上で常に必要となるタスクを 簡単に実装できる

Core   Bluetoothフレームワークは、Bluetooth   4.0仕様のうち低階層にあたる詳細を隠蔽(抽象化)して います。したがって、BLEを扱う上で必要となるさまざまなタスクを、簡単にアプリケーションに実 装できるのです。セントラルとして動作するアプリケーションを開発する場合、ペリフェラルを検 出、接続し、データをやり取りする処理を容易に記述できます。また、ローカルデバイスをペリフェ ラルとして動作させるのも容易です。

関連する章:  “セントラルが実行するタスク”、“ペリフェラルが実行するタスク”

iOSアプリケーションの状態によってBluetoothの挙動が変わる

iOSアプリケーションがバックグラウンド状態や一時停止状態になると、Bluetoothに関わる挙動が変 わります。通常、この状態ではBLEタスクを実行できないのです。バックグラウンド状態でも実行できるようにするためには、Core       Bluetoothのバックグラウンド実行モード(セントラルとしての役割、 ペリフェラルとしての役割があり、その一方または両方)に対応する旨、宣言しなければなりませ ん。宣言した場合でも、タスクによっては、バックグラウンド状態になると動作が変わります。アプ リケーションの設計時に、この違いを考慮しなければなりません。

バックグラウンド状態で実行できる場合でも、システムがいつでも強制的に停止する可能性がありま す。メモリを解放し、フォアグラウンドアプリケーションに割り当てるためです。iOS 7以降、セント ラル/ペリフェラルマネージャオブジェクトの状態を保存しておき、次のアプリケーション起動時に 復元できるようになりました。この機能を活用すれば、長時間にわたるアクションも実装できます。

関連する章:    “Core Bluetoothのバックグラウンド処理(iOSアプリケーション用)”

使い勝手を改善するためのベストプラクティスに従う

Core Bluetoothフレームワークを利用すれば、BLEトランザクションの多くを、アプリケーションが制 御できるようになります。ユーザにとっての使い勝手を考慮し、適切に制御しなければなりません。

たとえば、セントラルもペリフェラルも、さまざまなタスクのために、周囲に電波信号を送出しま す。各種の無線通信機器が同じ周波数帯を共有しており、また、電池の寿命にも悪影響があるので、 送信を最小限に抑えるようアプリケーションを設計してください。

関連する章: “リモートのペリフェラルとのやり取りに関するベストプラクティス” 、“ローカルデバイスをペリフェラルとしてセットアップするためのベストプラクティ ス”

この文書の使い方

初めてCore      Bluetoothフレームワークを使うか、そうでなくてもBLEの基本的な考え方になじんでいな い方は、この資料全体に目を通してください。“Core Bluetoothの概要” では、読み進め るために必要となる用語や概念を説明します。

基本的な考え方を頭に入れたら、“セントラルが実行するタスク” を読んで、ローカル デバイスをセントラルとして扱うアプリケーションの実装方法を身につけてください。同様に、ペリ フェラルとして扱うアプリケーションについては、“ペリフェラルが実行するタスク” で説明します。

 

ベストプラクティスに基づき、アプリケーションが良好に動作するよう、“Core Bluetoothのバックグ ラウンド処理(iOSアプリケーション用)” 、“リモートのペリフェラルとのやり取りに 関するベストプラクティス”、“ローカルデバイスをペリフェラルとしてセットアップ するためのベストプラクティス” も読んでおくとよいでしょう。

 

関連項目

Bluetooth Special Interest Group(SIG)の公式ウェブサイトには、BLE技術に関する、最も信頼できる 情報が集まっています。ここにはBluetooth  4.0の仕様文書もあります。

BLE技術を使ってApple製品(Mac、iPhone、iPad、iPod    touchなど)と通信するハードウェア機器を設 計する際には、『Bluetooth Accessory Design Guidelines for Apple Products』を参照してください。さら に、このBLE機器がiOSデバイスと接続し、iOSデバイスが生成する通知にアクセスできるようにした い場合は、『Apple Notification Center Service (ANCS) Specification 』を参照してください。

 


 

このコンテンツはアップル社の提供する「CoreBluetoothプログラミングガイド」というPDFをwebの形式に変換したものをベースとしています。ページ中に含まれる図やテキストは「CoreBluetoothプログラミングガイド」からの引用が多く含まれます。PDFの形式ではなくウェブの形式で閲覧したい方への利便性を高めることや、「CoreBluetoothプログラミングガイド」だけではわかりにくいという箇所の捕捉を行うことが当コンテンツの主旨です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です