Making an iBeacon App
はじめに
ビーコーン技術は、GPSのように位置データを提供しますが、ビーコーンはGPS技術の代替ではありません。両技術の実際の動作は大きく異なりますが、最終的な結果は似ています。ビーコーンの主な利点は、ユーザーの位置をより詳細に提供し、GPSが届かない場所でも利用できる点です。iBeaconアプリは、GPS機能を統合することで大きな利点を得ることができます。後で詳しく説明しますが、これについては後ほど詳しく説明します。
私は最近、「The Manifest Experience」というiBeaconアプリを開発しました。このアプリは、私が働いているデジタルエージェンシーのためのもので、オフィスにゲストを歓迎することを目的としています。また、オフィス内の場所に関する詳細な情報も提供します。私たちはこのアプリを技術を探求し、その強みと弱みをよりよく理解するための手段として作成しました。開発プロセス中にiBeaconsを自由に実験し、新しい使い方を試み、ユニークなエンドユーザー体験を提供しました。アプリはAppStoreで入手可能です: https://itunes.apple.com/us/app/manifest-experience-st.-louis/id929868569?mt=8
注: 追加のコンテキストを提供するためにリンクを貼っていますが、アプリをダウンロードする必要はありません。このアプリはSTLオフィスの近くにいない人には役に立ちません。
The Manifest Experienceの概要
アプリをダウンロードすると、ユーザーは基本的な情報を入力し、小さなプロフィールを設定します。ユーザーがオフィスに入ると、アプリは入口のiBeaconを検出します。その後、アプリはユーザーの名前と写真をウェブサービスに送信します。このウェブサービスは、オフィス内の大きなビデオスクリーンに表示されるウェブページをサポートしています。ウェブサービスが更新されると、ウェブページにはユーザーへのパーソナライズされた歓迎画面が表示されます。この歓迎機能は、アプリ内でのiBeacon技術の最も明白な利用法ですが、唯一の利用法ではありません。アプリは、各スペースの説明と写真を部屋に分けています。各部屋セクションは、アプリが最初に対応するiBeaconに遭遇するまで初めはロックされています。また、アプリはユーザーがスペース内にいる間にビデオウォールに短いメッセージを投稿することもできます。これにより、オフィスのビデオスクリーンが個人的な内部オフィスTwitterフィードのように変わります。アプリの開発中にいくつかの障害に直面しました。この技術はまだ比較的新しいため、開発中に遭遇する問題に対する回答をオンラインで見つけるのは難しいことがあります。ここでは、プロセスから得られた学びを共有することに決めました。
アプリでのiBeaconデータの活用
ローカル通知
iBeaconアプリにおける位置に基づく通知を考えると、ほとんどの人がローカル通知を思い浮かべます。これらのローカル通知は、氷山の一角に過ぎません。
これらの通知は過剰に使用しやすく、ユーザー体験を煩わしくする可能性があります。私たちはアプリ内でほとんど使用しないことに決めました。アプリは、ユーザーの全体の体験を通じて、2回のみ通知を送信します。1回目はManifestのオフィスへの初回訪問時に歓迎の通知を送信し、もう1回は初めて訪問した後に感謝の通知を送信します。
通知がiBeaconに遭遇したときにトリガーされるように設定するのは非常に簡単です。AppleのCLBeaconモデルは、アプリがiBeaconを表すために使用します。CLBeaconには通知プロパティが組み込まれており、簡単に通知をトリガーできます。
モニタリングとレンジング
アプリは、モニタリングおよび/またはレンジングのためにiBeaconの位置データを受信します。iBeaconアプリが初めて開かれると、iPhoneに特定のiBeaconを「モニター」するように登録します。アプリはその後、iPhoneがそのiBeaconの領域に入るまたは出るたびに通知されます。アプリの位置情報許可に応じて、これらのイベントはアプリが開いていなくても送信される可能性があります。
レンジングは、アプリがアクティブなときにのみ行えます。レンジングがオンになっていると、アプリはiPhoneと各ビーコーンとの推定距離にアクセスできます。これがiBeaconsの真の力です。レンジングがオンになっていると、ユーザーの位置をフィート単位で知ることができます。複数のビーコーンからの距離を使用して、位置を三角測量することが可能です。レンジングは便利ですが、バッテリーに大きな負荷がかかるため、節度を持って使用する必要があります。過度に使用すると、バッテリーの消耗によりユーザーがアプリの位置情報サービスを完全にオフにする可能性があります。これは避けるべきで、許可の拒否はほとんどの位置情報アプリを無効にしてしまいます。
Manifestアプリでは、iBeaconレンジングを完全に避けています。代わりに、はるかにバッテリー効率の良いモニタリングに依存しています。アプリは各iBeacon領域のエントリーおよび退出イベントの最新の時間と日付を記録し保存します。領域イベントのタイムスタンプを保存することで、アプリはエントリーと退出のイベントを比較し、どちらが最新かを確認できます。エントリーイベントが退出イベントよりも最近であれば、ユーザーがその領域に現在いることがわかります。イベントが発生すると、アプリはすぐにタイムスタンプをデバイスに保存します。アプリが開いていなくても、イベントが発生すると記録され、後で参照可能です。
iBeaconの弱点
iBeacon技術には、他のすべてと同様に欠点があります。iPhone、iPad、またはMacコンピュータを設定して任意のiBeaconを模倣することができます。誰かがアプリをだまして、実際にはそのエリアにいないのにいるように見せることができます。幸いにも、このトリックはGPSモニタリングを使用して検出できます。iBeacon関連の位置イベントがトリガーされたときにiPhoneのGPS位置をチェックすれば、iPhoneがiBeaconの一般的なエリアにいることを確認できるため、イベントが有効であることが確認できます。
また、iPhoneは範囲内にいてもiBeaconの信号を時折失うことがあります。これにより、後続の誤った退出および再入場イベントが発生します。iPhoneはこの問題を回避するために退出イベントを遅延させますが、誤った退出はまだ発生します。