【Swift】CLLocationManagerを検証してみた
検証結果
■ バックグラウンド&スリープ状態での位置情報取得可否
【検証方法】
- アプリをバックグラウンドにした時間帯とデバイスをスリープさせた時間帯に位置情報の通知が取得できているかをデータで検証する。
【検証結果】
フォアグラウンド | バックグラウンド | |
---|---|---|
スリープしていない | 取得可 | 取得可 |
スリープ中 | 取得可 | 取得可 |
- 仮設ではアプリがバックグラウンド状態でも位置情報を取得できるとしており、仮設通り位置情報を取得できていることを確認。
- デバイスがスリープ時は仮設では取得できないとしていたがスリープ時の時間帯でも位置情報を受診していたことからスリープ時でも取得可能である。
■ 要求する精度設定による精度及びバッテリーの消費量
【検証方法】
- kCLLocationAcuuracyBestとkCLLocationAcuuracyBestForNavigationの2パターンで検証を行う。
- それぞれの精度設定において同じルートを徒歩で移動し画面に表示されるルートと取得したデータを比較し検証を行う。
- 歩行テスト時はスリープバックグラウンド且つスリープ状態で検証。
- バッテリーの消費量の検証は机上で放置状態とする。
- それぞれ50%から開始し1,3時間経過後のバッテリーの消費量を比較・検証する。
- テスト時はバックグラウンド且つスリープ状態で検証。
【検証結果】
精度(データ量) | |
---|---|
Best | 677 |
BestForNavigation | 688 |
バッテリー消費量(1時間後) | バッテリー消費量(3時間後) | |
---|---|---|
Best | 46%(-4%) | 21%(-29%) |
BestForNavigation | 37%(-13%) | 20%(-30%) |
- 精度に関して実際に歩行したルートを画面上に表示させるとそれほど大きな差は確認できない。
- 同じく精度に関して歩行時に取得したデータ(位置情報通知した時間・緯度・経度)の総数は11の差があったが、仮設していたほどの大きな差はない。
- バッテリーの消費量に関して1時間では9%の差であったが3時間後では1%の差が発生した。
詳細!Swift 4 iPhoneアプリ開発 入門ノート Swift 4+Xcode 9対応
- 作者: 大重美幸
- 出版社/メーカー: ソーテック社
- メディア: Kindle版
- この商品を含むブログを見る
[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)
- 作者: 石川洋資,西山勇世
- 出版社/メーカー: 技術評論社
- 発売日: 2018/01/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る