関連サイト
本書の関連ページが用意されています。
内容紹介
本書は、Core Bluetoothを使ったBLEのアプリ開発プログラミングの解説書です。BLEの仕様の詳細な解説から実際のアプリ開発手法、はまりやすい点の解説までをわかりやすく解説します。
本書は大きく「Part1. BLE 編」と「Part2. iOSプログラミング編」にわかれています。
「Part1. BLE 編」(1章から3章)は、konashiの開発者である松村氏による執筆で、BLEという通信規格そのものについての解説を行っています。
「Part2. iOSプログラミング編」(4章から12章)は、iOSエンジニアである堤氏による執筆で、Core Bluetoothを中心に、BLEを用いたiOSアプリ開発の解説を行っています。10章「開発ツール・ユーティリティ」や11章「ハマりどころ逆引き辞典」などは、実際に開発現場での実体験が反映されたものとなっています。 本書は大きく「Part1. BLE 編」と「Part2. iOSプログラミング編」にわかれています。
書誌情報
- 著者: 堤 修一, 松村 礼央
- 発行日: 2015-03-23 (紙書籍版発行日: 2015-03-30)
- 最終更新日: 2015-12-30
- バージョン: 1.1.0
- ページ数: 480ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: ソシム
対象読者
著者について
堤 修一
京都大学にて電気電子工学、京都大学大学院にて信号処理を学び、NTTデータにて音声処理、キヤノンにて画像処理を専門として研究開発に従事。カヤックにてiOSアプリ開発者として30本以上のアプリを開発しリリースする。その後シリコンバレーの500Startupsのインキュベーションプログラムに参画。現在はフリーランス。BLEを用いて外部ハードウェアと連携するiOSアプリを多く手がけている。カンヌ国際広告祭やAppStore Best of 2012等受賞多数。著書『iOSアプリ開発 達人のレシピ100』(秀和システム/2013年)
松村 礼央
博士(工学)。karakuri products代表。東京大学先端研特任研究員。在学中は人型ロボットの開発・製造に従事、代表作は「robovie-mR2」。2012年にBLEを活用したツールキット「konashi」の企画、開発に従事。2013年に独立しkarakuri productsを設立。現在はセンサ・ネットワークから得た活動文脈を活用したインフラについて研究し、その成果展開を行っている。
目次
まえがき
本書の読み方
Part1. BLE編
1. はじめに
2. BLEをとりあえず体験する
- 2-1. konashiでBLEを体験する
- 2-2. 初級編:konashiをとりあえず体験する
- 2-3. 中級編:konashiをiOS-SDKを利用して制御する
3. BLEを理解する
- 3-1. BLEの概要
- 3-2. BLEの構造
- 3-3. BLEのネットワークトポロジー
- 3-4. BLEでのネットワークと通信の制御
- 3-5. L2CAP(Logical Link Control and Adaption Protocol)によるパケットの制御
- 3-6. BLEのパケットフォーマット
- 3-7. LL層における通信のやり取り
- 3-8. GAP(Generic Access Profile)の詳細を知る
- 3-9. ATT(Attribute Protocol)とGATT(Generic Attribute Profile)の詳細を知る
- 3-10. GATTとService
- 3-11. iOSエンジニアのBLEあんちょこ
Part2. iOSプログラミング編
4. Core Bluetooth入門
- 4-1. 周辺のBLEデバイスを検索する
- 4-2. BLEデバイスに接続する
- 4-3. 接続したBLEデバイスのサービス・キャラクタリスティックを検索する
- 4-4. 接続したBLEデバイスからデータを読み出す(Read)
- 4-5. 接続したBLEデバイスへデータを書き込む(Write)
- 4-6. 接続したBLEデバイスからデータの更新通知を受け取る(Notify)
5. ペリフェラルの実装
- 5-1. セントラルから発見されるようにする(アドバタイズの開始)
- 5-2. サービスを追加する
- 5-3. サービスをアドバタイズする
- 5-4. セントラルからのReadリクエストに応答する
- 5-5. セントラルからのWriteリクエストに応答する
- 5-6. セントラルへデータの更新を通知する(Notify)
6. 電力消費量、パフォーマンスの改善
- 6-1. スキャンの最適化
- 6-2. ペリフェラルとの通信の最適化
- 6-3. ペリフェラルとの接続の最適化
- 6-4. イベントディスパッチ用のキューを変更する(セントラル)
- 6-5. アドバタイズの最適化
- 6-6. イベントディスパッチ用のキューを変更する(ペリフェラル)
7. バックグラウンド実行モード
- 7-1. バックグラウンド実行モードへの対応方法
- 7-2. バックグラウンド実行モードの挙動
- 7-3. アプリが停止しても、代わりにタスクを実行するようシステムに要求する(状態の保存と復元)
- 7-4. バックグラウンド実行モードを使用せず、バックグラウンドでのイベント発生をアラート表示する
8. Core Bluetoothその他の機能
- 8-1. ペリフェラルに再接続する
- 8-2. Bluetoothがオフの場合にユーザーにアラートを表示する
- 8-3. UUID 詳解
- 8-4. アドバタイズメントデータ詳解
- 8-5. CBPeripheralのnameが示す「デバイス名」について
- 8-6. 静的な値を持つキャラクタリスティック
- 8-7. サービスに他のサービスを組み込む~「プライマリサービス」と「セカンダリサービス」
- 8-8. サービスの変更を検知する
9. Core Bluetooth以外のBLE関連機能
- 9-1. iOSの電話着信やメール受信の通知を外部デバイスから取得する(ANCS)
- 9-2. iBeaconとBLE
- 9-3. MIDI 信号をBLEで送受信する(MIDI over Bluetooth LE)
- 9-4. BLEが利用可能なiOSデバイスのみインストールできるようにする
10. 開発ツール・ユーティリティ
- 10-1. 128ビットUUIDを生成するコマンド「uuidgen」
- 10-2. 開発に便利なiOSアプリ「LightBlue」
- 10-3. Apple 製開発用ツール「Bluetooth Explorer」
- 10-4. 「PacketLogger」でBLEのパケットを見る
11. ハマりどころ逆引き辞典
- トラブル1:スキャンに失敗する
- トラブル2:接続に失敗する
- トラブル3:サービスまたはキャラクタリスティックが見つからない
- トラブル4:Writeで失敗する
- トラブル5:キャラクタリスティックの値がおかしい
- トラブル6:バックグラウンドでのスキャンが動作しない
- トラブル7:バックグラウンドのペリフェラルが見つからない
- トラブル8:セントラルの「状態の保存と復元」に失敗する
- トラブル9:ペリフェラルの「状態の保存と復元」に失敗する
- トラブル10:iBeaconが見つからない
12. BLEを使用するiOSアプリ レシピ集
- レシピ1:心拍数モニタアプリ
- レシピ2:活動量計デバイスとアプリ
- レシピ3:ジェスチャ認識ウェアラブルデバイス&アプリ
- レシピ4:すれちがい通信アプリ