$30 off During Our Annual Pro Sale. View Details »

watchOSとMapKitを駆使した位置情報収集:バッテリー消費最小化と取得精度向上テクニック

Shoko Sato
September 03, 2023

 watchOSとMapKitを駆使した位置情報収集:バッテリー消費最小化と取得精度向上テクニック

位置情報は現代のアプリケーションで不可欠な要素の一つであり、Apple Watchにおいても例外ではありません。しかし、watchOSにおける位置情報の取得はバッテリーの消費という課題に直面します。そのため、watchOSとMapKitを連携させ、適切な頻度で精度良く位置情報を取得する一方で、バッテリーを極力消費させない方法が求められます。
本トークでは、位置情報収集の基本、MapKitの詳細な機能、watchOSの消費電力管理の仕組み、そしてこれらが相互にどのように影響を及ぼすか、バッテリー消費最小化と取得精度向上のテクニックについて解説します。位置情報の取得精度とバッテリー消費は一見トレードオフの関係にあるようにみえますが、watchOSの仕様を理解し、MapKitの使用方法を最適化することで、この二つのバランスを適切に維持することを目指します。

発表者 / satoshoco https://twitter.com/satoshoco
https://fortee.jp/iosdc-japan-2023/proposal/78e681dc-9c24-4a32-aef5-75aeb124fb6e

Shoko Sato

September 03, 2023
Tweet

More Decks by Shoko Sato

Other Decks in Technology

Transcript

  1. 2 ベンチャー企業のフロントエンドエンジニア、マーケティングマネー ジャーを経て、2019年9⽉よりLINEのDeveloper Successチームに てエンジニア組織のTech Branding, Trainingや技術カンファレンス の運営を担当。イベントやブログ、動画などを中⼼に社内外の技術コ ミュニティの盛り上げや機会づくりなど各組織のサポートに従事す る。またGoogle

    Developer Group TokyoとWTM Tokyoのオーガ ナイザーとして、様々な技術コミュニティに参画。 個⼈でiOS/Androidアプリ開発に挑戦中。趣味はゲームとギターとバ イクとヨガと料理。最近着物と茶道を勉強中。 X(Twitter): @satoshoco Shoko Sato Instruction / iOSDC Japan 2023 Introduction
  2. 15 実装⼿順 03.MapKit 1. MapKit導⼊ 2. 位置情報の取得 3. watchOSとの連携 4.

    iOSでの受信と表⽰ 参考)https://developer.apple.com/documentation/corelocation
  3. 16

  4. 19

  5. 26 Core Location 04. PoC & Result • Background •

    取得精度 • 取得間隔(距離) • 位置情報の変化 プロパティ 参考)https://developer.apple.com/documentation/corelocation
  6. 33 04. PoC & Result How Background desired Accuracy distance

    Filter activity Type Battery (Before) Battery (After) Distance Time Speed(m/s) Battery walk 2km TRUE Nearest Ten Meters None Fitness 97 95 2.11 0:23:28 1.5 95 walk 2km TRUE Best None Fitness 95 93 2.09 0:21:41 1.6 94 walk 2km TRUE Hundred Meters None Fitness 93 91 3.79 0:22:49 2.77 92 walk 2km TRUE Kilometer None Fitness 91 90 3.55 0:22:16 2.66 91 walk 2km TRUE Three Kilometers None Fitness 90 89 3.46 0:22:01 2.62 89 walk 2km FALSE Best None Fitness 89 86 4 0:22:42 2.94 86 bike 2km TRUE Best None Fitness 86 85 2 10:30 3.17 85 bike 2km TRUE Nearest Ten Meters None Fitness 85 84 1.97 0:08:51 3.71 84 bike 2km TRUE Hundred Meters None Fitness 84 83 2.69 0:08:22 5.35 83 bike 2km TRUE Kilometer None Fitness 84 83 2.46 0:07:36 5.38 83 walk 2km TRUE BestForNavigation None Fitness 84 83 2.42 0:23:21 1.6 89 walk 2km TRUE Best 1 Fitness 82 81 2.11 0:21:31 1.63 82 注意) それぞれ20kmの道のりを様々なプロパティの組み合わ せで実証した発表者独自の環境による結果です
  7. 35 最⾼の精度 kCLLocationAccuracy Best 10メートル以内の精度 kCLLocationAccuracy NearestTenMeters 100メートル以内の精度 kCLLocationAccuracy HundredMeters

    1キロメートル以内の精度 kCLLocationAccuracy Kilometer 04. PoC & Result >> Walk ナビゲーション⽤途に 最適な最⾼の精度 kCLLocationAccuracy BestForNavigation 3キロメートル以内の精度 kCLLocationAccuracy ThreeKilometers バックグラウンド: True, 取得間隔: None, 位置情報の変化: Fitness 取得精度: desiredAccuracy
  8. 36 最⾼の精度 kCLLocationAccuracy Best 10メートル以内の精度 kCLLocationAccuracy NearestTenMeters 100メートル以内の精度 kCLLocationAccuracy HundredMeters

    1キロメートル以内の精度 kCLLocationAccuracy Kilometer 04. PoC & Result >> Bike ナビゲーション⽤途に 最適な最⾼の精度 kCLLocationAccuracy BestForNavigation 3キロメートル以内の精度 kCLLocationAccuracy ThreeKilometers バックグラウンド: True, 取得間隔: None, 位置情報の変化: Fitness 取得精度: desiredAccuracy
  9. 37 最⾼の精度 kCLLocationAccuracy Best 10メートル以内の精度 kCLLocationAccuracy NearestTenMeters 100メートル以内の精度 kCLLocationAccuracy HundredMeters

    1キロメートル以内の精度 kCLLocationAccuracy Kilometer 04. PoC & Result >> Car ナビゲーション⽤途に 最適な最⾼の精度 kCLLocationAccuracy BestForNavigation 3キロメートル以内の精度 kCLLocationAccuracy ThreeKilometers バックグラウンド: True, 取得間隔: None, 位置情報の変化: Automotive Navigation 取得精度: desiredAccuracy
  10. 38 最⾼の精度 kCLLocationAccuracy Best 10メートル以内の精度 kCLLocationAccuracy NearestTenMeters 100メートル以内の精度 kCLLocationAccuracy HundredMeters

    1キロメートル以内の精度 kCLLocationAccuracy Kilometer 04. PoC & Result >> Car ナビゲーション⽤途に 最適な最⾼の精度 kCLLocationAccuracy BestForNavigation 3キロメートル以内の精度 kCLLocationAccuracy ThreeKilometers バックグラウンド: True, 取得間隔: None, 位置情報の変化: Automotive Navigation 取得精度: desiredAccuracy
  11. 39 取得精度の変化によるバッテリー消耗 04. PoC & Result 最⾼の精度 kCLLocationAccuracy Best 10メートル以内の精度

    kCLLocationAccuracy NearestTenMeters 100メートル以内の精度 kCLLocationAccuracy HundredMeters 1キロメートル以内の精度 kCLLocationAccuracy Kilometer ナビゲーション⽤途に 最適な最⾼の精度 kCLLocationAccuracy BestForNavigation 3キロメートル以内の精度 kCLLocationAccuracy ThreeKilometers 2% 2% 2% 1% 1% 1% ※それぞれ2キロの距離を計測した結果