106
106

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS7.1でのiBeaconが改善されまくった話

Last updated at Posted at 2014-03-12

さくっと本題に入りますね。
#どこが改善されたの?

  1. Backgroundで起動していなくても反応するようになった
  2. 応答速度が向上した

##Backgroundで起動していなくても反応するようになった
正直なところ、iBeaconってO2Oでものすごく注目を浴びて、もてはやされてきましたが、アプリをフォアグラウンドもしくはバックグラウンドで立ち上げていないといけないなど、色々な制限があり、はいはい解散解散、なムードがあったと思うんですよ。特に最近。
しかし!iOS7.1では、アプリがiBeaconのMonitoringを開始していれば、その後ユーザがアプリを終了させても反応するようになりました。
つまり、

  • 一度起動して、そのまま封印していても、
  • 意図的、もしくはフリーズなどで再起動しても、
  • 電源をオフにして、その後オンにした後でも、

上記のような場合でも、アプリはiBeaconを検知します。すばらしい!

具体的にどのような処理の流れになるかというと、

####アプリが起動していない状態の場合

  1. デバイスがregionに入る/出る
  2. アプリが自動的にBackgroundで起動する
  3. 処理が実行される

####アプリがサスペンド状態の場合

  1. デバイスがregionに入る/出る
  2. wake upする
  3. 10秒程度のイベントをハンドルする処理時間が与えられる。なお、この時間はbeginBackgroundTaskWithExpirationHandler:で増やせる

##応答速度が向上した
iBeacon検知後、体感でだいたい10秒から30秒ぐらいしないと通知を投げてくれなかったのですが、体感でちょっと何となく早くなったような気がしました。
しかし、appleのドキュメントを読み直すと、スパムや乱雑な通知を避けるための閾値としてOSで定められている、20秒以上境界線の中もしくは外にいないと通知はされないようになっているようです。

##アプリを作る上で逆に考えないといけない事
アップルはiOSユーザ向けの発表にはこれらの変更点を載せていません。
http://support.apple.com/kb/DL1732 参照の限りは、です。)
よって、全くアプリを起動していない状態なのにいきなり通知が来たりすると「ん?なんだこのアプリは。スパムか??」というような憶測などにより、アプリ自体の評価を下げてしまったりするかもしれません。
このような事態を引き起こさないように、適度な通知を行なう、ユーザに周知するなどの工夫が必要そうです。

##参考
Location and Maps Programming Guide

106
106
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
106
106

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?