Bluetoothプログラミングタイトルの通り、BLEを利用したiOSアプリ開発の解説書です。企画当初の予定ページ数(230ページぐらい)を大きく越え、480ページの大ボリュームになりました。企画が決まってからだと足かけ1年、共著の松村さんも僕も編集の大内さんも(おそらくDTPさんやデザイナーさんも)徹夜しまくりでデスマーチの様相を呈しつつ仕上げた労作なので、ぜひみなさまにポチッと・・・お願いしたいところではありますが、ニッチなテーマですし、価格も少々高めではあるので、本記事の内容紹介をご一読いただき、ピンとくるものがあればぜひお求めいただけると幸いです。Bluetoothを中心に、BLEを用いたiOSアプリ開発の解説となっています。各章の詳細項目は後述するとして、iOSにおける実装方法の解説だけじゃなくて、BLEの規格そのものについての解説もしっかり書いてあるのが本書のポイントのひとつです。BLEを理解する」で、なんとこの章だけで約150ページ(!)もあります。英語で約2700ページもあり、とても読める気はしないので、iOSエンジニア向けに噛み砕いて解説してくれているこの章だけでも個人的には「買い」だと思っています。その他の概要・特徴紹介代わりに、「まえがき」に書いた内容を載せてみます。BLEという通信規格自体への興味はさておき、「スマホアプリと外部デバイスを連携させる」という分野に興味のあるアプリエンジニアの方は結構多いのではないでしょうか。筆者も例外ではなく、そもそもBLEとの馴れ初めを振り返ると、「BLE」自体は意識せず、ただただ「iOSアプリと外部デバイスを連携させて何かやるのって楽しそう」という動機でkonashiを購入したのが始まりでした。その後、次世代パーソナルモビリティ「WHILL」、ウェアラブルなおもちゃ「Moff」など、さまざまな案件にiOSアプリエンジニアとして関わらせていただくうちにBLEに関する知識も深まっていき、こうして書籍まで執筆させていただいているわけですが、ずっとベースにあったのは「スマホアプリと外部デバイスと連携させるのは楽しい」これに尽きます。私個人のそういった経験もあり、「楽しそう」「つくってみたい」から入って、だんだんBLEのしっかりした知識もつくように構成したのが本書です。入門」の序盤では、「周辺のBLEデバイスを探索する」「接続する」といったようになるべく専門用語を使わず説明するようにしています。最初は「周辺のBLEデバイスを探索したい」だけなのに、そこでオプションの解説まで含めてしまうと、イベントディスパッチ用のキューの話やサービスによる絞り込みを行うかどうか、その場合バックグラウンドではどういった挙動になるか・・・といきなり新しい事柄が一度にたくさん出てきてしまい混乱のもとになるので、各項では新しく学ぶ事項を必要最小限にとどめ、後からより詳細を知りたくなったときに関連ページに飛べるよう、各項に「関連項目」の欄を設けています。本書では、こういった「楽しそう」「つくってみたい」という気持ちを削がないための工夫を随所にしています。・・・ブログに載せると長いのでいったんここで切りますが、そんなわけで入門者の方が入門しやすいように配慮して書いております。松村・堤という実際にBLEプロダクトを開発した執筆陣がその経験に基いて書いているので、実践的な内容になっているのも本書のポイントです。ハマりどころ逆引き辞典」は、筆者が実際に開発現場においてハマって大量の時間を食いつぶした汗と涙が凝縮されています。本書の随所で、リファレンスなどからは汲み取りづらい注意点やポイントについて触れています。松村の執筆した3章「BLEを理解する」では、超濃厚なBLE仕様に関する解説が展開されています。実案件においてBLEの特色を活かしたプロダクト設計をする際に、あるいはアプリエンジニアがハードウェアエンジニアと意思疎通する際に、これらの知識が役立ちます。Bluetoothよりももっと下位のレイヤーについても学べるようになっています。本書は、iOSアプリ開発には慣れていることを前提としています。一般的な操作方法、Gitやターミナルの基本的な扱い等々については解説を省略しています。一般的なフレームワークについても前提知識として取り扱っています。逆に、BLEについては、知識ゼロからでOKです。「BLEって何?」「何が嬉しいの?」という状態から読み進められるよう配慮し、構成してあります。ゼロから入れるようにしつつも、かなり詳細な内容までカバーしているので、本書の内容をマスターすれば、実際に新規ハードウェア開発プロジェクトにiOSエンジニアとして入り、活躍することも可能かと思います。経験がある人にとっても、BLEの規格自体について説明している3章(松村さん執筆)は相当学びがあると思われます。(#僕は新しく勉強になることだらけでした。)また僕が執筆したiOSプログラミングのパートにも、何か新しい発見はあるかもしれません。Changed」サービスへの対応方法等、ググってもあまり具体的な実装方法が出てこない(2015年3月堤調べ)事項についても書いてあります。実案件でBLEさわりはじめてるけどまだあまり自信がない、という方には11章「ハマりどころ逆引き辞典」が役立つと思います。実際に堤が数々の実案件でハマりつつ書き溜めてきた内容なので、かなりの時間短縮になるのでは、と思っています。書籍についてのFAQ以下、本書について、よく聞かれる質問です。ほとんどの節についてダウンロードサンプルを用意しています。両方のサンプルを用意し、掲載しています。その後の章についてはObjCをベースに解説しています。konashiがないと読み進められない?いくつかの例でkonashiを使ってますが、もちろん、お持ちでなくても全然大丈夫です。iPhone同士で通信する、Macと通信する、SensorTagを使う、といった諸々の代替方法も紹介しています。(本書内の図版で使用している各種BLEデバイスの模式図)BLE、用語がややこしくて敬遠している筆者も、「ペリフェラル」とか「キャラクタリスティック」といった用語が難しそうで、ずっと敬遠してました。Bluetooth編の最初の章(4章)序盤では、なるべくそういう用語を使わないように「周辺のデバイスを探す」「接続する」といった感じで解説しています。(このあたりの配慮については、上に載せた「まえがき」もご参照ください)BLE云々はよくわからないけどとにかく何かつくってみたいいきなり12章のレシピからはじめてみるのも手です。「心拍数モニタアプリ」「活動量計デバイスとアプリ」「ジェスチャ認識ウェアラブルデバイス&アプリ」「すれちがい通信」とiOS✕BLEの分野において人気のある題材を集めつつ、本書の内容がまんべんなく復習できるようなサンプルにしてあります。関連項目もまとめてあるので、つくりながら必要に応じて戻って学習する、という学習スタイルも可能です。活動量計デバイスとアプリ」はデバイス側をiPhoneで代用するレシピにしているので、(気分は出ないかもしれませんが)専用デバイス無しですぐに試してみることができます。すれちがい通信」も、iPhone同士で試せるレシピです。Energyをはじめよう」とどっちを買っていいかわからない僕も買いました!原著も持ってましたが、和書も改めて。1,674Amazon.co.jpで詳細を見るそれぞれのAmazonのカテゴリの違いが、書籍のベクトルの違い・棲み分けを表しているかと思います。Bluetoothプログラミング・・・カテゴリ:モバイルプログラミング目次を見ても内容のかぶりはほとんどなく、ボリューム的にもだいぶ違いがあります(そのぶん価格帯もちがう)。いう技術全体の概要を把握したい方・・・「〜をはじめよう」BLEを使ったiOSアプリの実装に興味がある方・・・本書みたいな感じかなと。高いすいません、価格はおさえたかったのですが。なにぶんニッチな技術分野なもので、初回発行部数少なめなのと、ページ数やらの関係で、これぐらいになってしまうとのことです。このあたりは筆者側ではほとんどどうにもできない大人の世界のことなので、なにとぞご理解を。)によるレビュー記事。BLEを使いiPhoneと通信するハードウェアを開発しようとする時、まず身につけるべきは、問題が起きた時の切り分け能力だと思う。iPhone側はアプリから見るとCoreBluetoothという抽象化したレイヤなので、アプリ開発者は「scanFor...してるのに見つからないよ?」デバイス側では「advertiseしてるよ?」となった時にすぐパケットロガーを出せると話が早い。この辺もちゃんと10章,10-3,10-4で書いてあってすばらしい。実戦をこなしている著者陣ならでは。iOSアプリの作り方を解説するだけではなく、BLEについて詳しい3章があるのが心強い。ハードウェアを作るならば、Bluetooth4の仕様を読むことになるだろう。2302ページもあってしんどい。そんなときにまずこの3章を日本語で読んで挑めるとかなりスムーズになるだろう。自分も仕様はところどころピックアップして読んだだけなので、3章はいざという時のためにあたためておきたい。2015/3/22BLEをサービスに活用するにはどうすればいいのか?という一貫した視点で、BLEの通信規格とiOSのCoreBluetoothフレームワークの2つの基礎知識をしっかり解説しています。開発対象がiOSではなくAndroidでも、またアプリやハードの直接の開発者でなくても、BLEを使った何かを考える方には、必読の1冊です。iOSアプリ開発では、開発方法だけではなく、トラブルに遭遇したときに、なぜそうなるのかありうる原因の逆引きが書かれています。分野をまたぐ開発では、なにかうまくいかない時に、通信を含む全てを知っていないと原因すら思いつけません。一方で、通信規格やSDKがしっかりしているので、開発者が陥りやすいトラブルは数える程度しかありません。筆者の開発実務経験があるから、逆引きを書かれたのだろうと思います。BLEを使ったいろいろなものを手がけられてきた方々の対談がAppendixとして収録されています。BLEを使ったサービスを考えるときに外せない考え方や原則みたいな、まだ構造化できない不定形の知識がこの対談にまとまっていると思いました。BLEを使うサービス開発は、どうしても形あるハードウェアに目を奪われます。Appendixと1章を何度か読み返していると、BLEはリモコンじゃないんだな、とか、なぜ1章でサービスという単語が度々使われているのかが、すっとわかる気がします。IoTという単語が話題になる2015年、"つながる"を強く主張する発表が続くと思います。IoTの強力な1手段でもあるBLEの本質は、つながることよりも、つなげない使い方や、つながったり切れたりする利用場面を思うことが重要なのだなと、読んでいて思いました。下記リンクから、本書の近隣のリアル店舗における在庫の有無が調べられます。電子書籍版(PDF)も出ました!!!!達人出版会さんよりご購入いただけます。PDF詳細を見るこちらからサンプルが読めます。ちなみに、ソシムの本書の読者サポートページの「正誤情報」から、該当ページだけ修正PDFがダウンロードできるのですが、こちらも購入検討用サンプルとして見ていただくといいかもしれません。目次と、各章の概要を載せてあります。*1:赤字等の一部装飾はこの記事用に編集したもの。書籍自体は1色刷りです。(22)月別アーカイブリンクWishlist検索はてなブログをはじめよう!shu223さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。