[XCODE] iPhone 位置情報取得における4つの注意点(バッテリー)
今日は、iPhoneの位置情報取得サービスを利用した場合に、バッテリーをセーブするポイントを記載したいと思います。iPhoneで位置情報を取得する方法は、以下を参考にしてみてください。
Significant-changeを利用した位置情報取得方法
Location Awareness Programming Guide
Turn off location services when you are not using them.
位置情報取得サービスを利用しないときには、サービスを中止する。多くのアプリケーションでは、位置情報取得サービスが常時必要という分けでは無いはず。位置情報を取得してしまってその位置情報を使う事が確定しているなら、位置情報取得サービスは終了させるべき。位置情報取得サービスは必要な時はいつでも開始できます。これは当然の事ですが、やはり一番注意するポイント。
Use the significant-change location service instead of the standard location service whenever possible.
Significant-changeサービスは、通常の位置情報取得サービスに比べて、バッテリーをセーブして位置情報を取得できます。Significant-changeサービスで事足りる場合には、それを使う。Significant-changeサービスについては、Significant-changeを利用した位置情報取得方法を参考にしてみてください。
Use lower-resolution values for the desired accuracy unless doing so would impair your application.
精度は必要最低限のものを指定する。むやみやたらにdesiredAcuuracyプロパティにkCLLocationAccuracyBestやkCLLocationAcuuracyNearestTenMetersを指定しない。
Turn off location events if the accuracy does not impove over aperiod of time.
一定期間経っても求める精度の位置情報が取得できない場合、位置情報取得サービスを中断する。たまたまそのときには、求める精度の位置情報が取得できないだけかもしれない。また後ほどトライしてみても良いのでは。不要なバッテリー消費は抑えるべき。
最後に
位置情報取得サービスは、iOSで実現する処理の中で、最もバッテリー消費をする処理の1つ。だから、バッテリーは注意するべきなんですね。アプリを作ってみて、CLLocationManagerのクリアタイミングに気をつける、必要最低限な精度を決めるなど、何点か注意すべきところはあるんですね。勉強になったー。
私のTwitter(@yoheiMune)も、もし良ければそちらも宜しくお願いします。