ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

BTLE萌え!iOS 6の最新開発トピックを詳説する新刊「iPhoneアプリ開発エキスパートガイド iOS 6対応」を買ってきたぞ

   

ひとりぶろぐのmoyashi (@hitoriblog) です。

iOS 6の開発トピックを集め詳説した「iPhoneアプリ開発エキスパートガイド iOS 6対応」を買いました。

本書は、書名から分かる通り入門書ではありません。iOS開発経験者が、iOS 6の新機能を開発に取り入れ、さらに先に進むためのものです。(続きは[Read More]から)

iPhoneアプリ開発エキスパートガイド iOS 6対応
加藤 寛人 藤川 宏之 高丘 知央 西方 夏子 吉田 悠一 関川 雄介
インプレスジャパン
売り上げランキング: 5,808


Core Bluetoothについて知りたかった

この本を買った目的は明確にありました。それは、Bluetooth-LE(Bluetooth Low Energy)、Core Bluetoothについて理解を深めることです。

Bluetoothについては、キーボード、ヘッドセット、スピーカーを除くとiOS 5までは長らくMade for iPhoneを取得、即ちAppleの認証を受けた機器しか使えない状況で、iPhoneにBluetooth経由で独自の周辺機器をつなぐのは非常にハードルが高かったのです。

iOS 5で登場したCore Bluetoothにより、Bluetooth-LE対応機器に限ってはMade for iPhoneを取得していない汎用の機器を使えるようになったのでした。

Make: Japan | Bluetooth 4.0でArduinoをiPhoneを接続:脱獄もMFiも必要なし?

しかし、iOS 5の時代は肝心のBluetooth-LE対応機器が皆無で、接続相手が居ない状況でした。

iOS 6の今になってやっと対応機器が増えてきて、面白くなってきたところです。

iOS 6でのCore Bluetoothは、Centralモードに加え、Peripheralモードにも対応し、Bluetooth-LE対応機器なら相手を選ばないところまで充実してきました。しかも、Core Bluetoothを使ったアプリは、かなり特権を与えられています。特にバックグラウンド動作における自由度が高く、またバックグラウンドタスクにおいて大義名分を得られる処理内容の幅が広そうです。例えば、MetaWatch用のアプリMetaWatch Manager for iOSは、バックグラウンドでのGmailの15分間隔のフェッチ等を実装しています。メールアプリにできないことが、Bluetooth-LE対応アプリにはできてしまうのです。Bluetooth-LE対応を標榜することで、iOSの制約を振り払うようなアプリが作れそうな予感がします。

MetaWatch Manager for iOS

正に、iPhoneと、Bluetooth-LE対応周辺機器との組み合わせが織りなす豊穣な世界は、これから花開こうとしているところです。そんな面白いBluetooth-LE、Core Bluetooth周辺で遊んでみようと、本書を買ったのです。

Core Bluetoothから利用しようと本書といっしょに買ったBluetooth-LE機器が以下です。スイッチが一つ付いたシンプルな機器です。

Amazonのレビューが悲惨ですが、これはユーザがこの製品と唯一組み合わせて使うことのできるカメラアプリ「カメリモ」の出来がイマイチであることに由来する評価です。カメリモはLBT-MPCMR01との接続性を十分考慮していないこと。また、動画系のAPIのみを使ったカメラアプリとなっていて、画質が悪いことなどが理由です。

カメリモ 1.2(無料)App
カテゴリ: 写真/ビデオ, エンターテインメント
販売元: Logitec Corporation – LOGITEC CORPORATION(サイズ: 0.6 MB)
全てのバージョンの評価: (10件の評価)

しかし、LBT-MPCMR01自体に罪は無く、開発者の立場としては自作のアプリをLBT-MPCMR01対応にすることは造作も無いことです。1ボタンのリモコンとして使えます。

LBT-MPCMR01のService UUIDはffe0、CharactaristicのUUIDはffe1。NotifyにSubscribe。Delegateメソッド内でCharactaristicから得られる値は0x00(オフ)と0x02(オン)です。この辺りはTIが出しているTI BLE Multitoolを使うと、Bluetooth-LE機器の持っているService、Charactaristicを調査確認できて便利です。

TI BLE Multitool 2.1(無料)App
カテゴリ: ユーティリティ, 辞書/辞典/その他
販売元: Texas Instruments Incorporated – Texas Instruments(サイズ: 8.5 MB)
全てのバージョンの評価: 無し(0件の評価)
+ iPhone/iPadの両方に対応

Core Bluetoothは、Core系のAPIにありがちなC言語のAPIでなく、Objective-Cなのでとてもイージーです。ARCを有効にしたときの楽勝感が凄い。

SPONSORED LINK


ちなみに、開発アカウントを持っていなくても、techBASICからならBluetooth-LE機器を相手取ったプログラミングが楽しめます。

techBASIC 2.6.1(¥1,300)App
カテゴリ: ユーティリティ, 教育
販売元: Byte Works, Inc. – Byte Works, Inc.(サイズ: 11 MB)
全てのバージョンの評価: (1件の評価)
+ iPhone/iPadの両方に対応

自作アプリからLBT-MPCMR01を使ってみたのが上掲の動画ですが、本書の解説は秀逸で、読んで理解し、ここまではサクサク動かせました。本書の解説は、LBT-MPCMR01での例のようにiOS機をCentralとして動作させるだけでなく、iOS 6から可能になったPeripheralとして動作させることについても紙幅を割いています。

Bluetooth-LE対応機器はまだまだ希少ですので、LBT-MPCMR01が有力な選択肢になっている実情がありますが、このほかには、CASIOのG-SHOCKがあります。

LBT-MPCMR01同様、Bluetooth-LE経由でG-SHOCK側のボタンを押したことをiOS機側で感知したり、iOS機側からG-SHOCKのバイブレータを動作させたりということができます。

Bluetooth-LE対応マウスも出てきました。リモートデスクトップアプリ、ペイントアプリに対応してもらいたいですね。

ELECOM Bluetooth4.0マウス BlueLED 5ボタン ブラック M-BT11BBBK
エレコム (2013-02-01)
売り上げランキング: 3,783

周辺機器を対象にしたアプリとなると、数が絞られアプリ単独のビジネスとしてはウマミが無いかもしれませんが、自作機器をリモートコントロールすることを考えると、僕はときめきを抑えることができません。

Core Bluetoothについて書かれている和書は、恐らく本書と、本書の前身に当たるiOS5プログラミングブックしかありません。

iOS5プログラミングブック
インプレスジャパン (2012-08-23)
売り上げランキング: 2,077

iOS 5はPeripheralモードに対応していませんでしたので、それに関する解説もまたありませんでした。Peripheralモード含めBluetooth-LE、Core Bluetoothで遊んでみたい方には本書「iPhoneアプリ開発エキスパートガイド iOS 6対応」は希少性があり、おすすめできます。

本書の内容について

僕が入手した目的がCore Bluetoothだったので、まずはそのことを書きましたが、もちろん本書の内容はそれにとどまりません。

テーマ 解説
01 iOS 6の新機能 iOS 6の新機能のオーバービュー
02 UI Kitエッセンシャル 新しいローカライズの方法、アピアランスのカスタマイズ、引っ張って更新のUIRefreshControl
03 Collection View実践 iOS 6の目玉の一つUICollectionViewを1章61ページを割いて解説
04 Storyboardと状態保存 進化したStoryboardと、状態保存に便利な新機能UI State Preservation
05 Auto Layout詳解 画面サイズに応じたUIコンポーネントの自動配置を行うAuto Layoutの解説。Obj-Cからの利用方法も
06 Passbook入門 Passbookについて、クライアントサイドの解説(サーバサイドは解説無し)
07 AVFoudation活用 AVCapture〜を使ったキャプチャ、ISO3200での増感撮影、トーチの明るさ変更、顔認識、顔のトラッキング、手ぶれ補正機能の利用、ガウスぼかしフィルタを例にとった画像加工、カメラ画像への各種フィルタの適用、そして興味深い自動補正フィルタ、そしてそれらを組み合わせた「マンガカメラ」的なサンプル
08 Bluetooth Smart実践 前述
09 iAd組み込みガイド iADの利用と、iOS6で追加されたinitWithAdType:について
10 プライバシー保護 位置情報、連絡先、カレンダー、リマインダー、写真、Bluetooth、SNSのアクセスとプライバシー保護機能、UDIDの代わりとなる識別IDについて
11 モダンObjective-C NSArray、NSNumber、NSDictionaryを簡単に記述できる新しいオブジェクトリテラルと、それらを使ったコレクションへのアクセス。逆引きTIPS、iOS 5からの移植についてのポイント

iOS 6以前のOSを切り捨てる決断を下せる開発者は、まだ多くないかもしれませんが、iOS 6の新機能は開発者を惹き付けるもので溢れています。

効率的な新しいローカライズ手法、状態保存が付いて楽勝度が上がったStoryboard、アプリのユニバーサル化、画面の回転への追従において強力な助っ人となるAuto Layout。

そしてまた、開発者を惹き付けてやまないCollection View。

本書の61ページにもおよぶCollection View解説を読みたい人は少なくないのではないでしょうか。

iOS 6を対象にした開発本は多かれど、入門書を除くと数は少なくなります。

本書は、iOS 6のエッセンスのみを抽出して解説した実戦的な内容となっており、現役の開発者におすすめできます。

iPhoneアプリ開発エキスパートガイド iOS 6対応
加藤 寛人 藤川 宏之 高丘 知央 西方 夏子 吉田 悠一 関川 雄介
インプレスジャパン
売り上げランキング: 4,624

 - iPad, iPhone, Objective-C,