WWDC20: What's new in location の要約

1d6af7b4c56fbf84d81ebaee4a8ac2e8?s=47 miharu
July 09, 2020

WWDC20: What's new in location の要約

「集まれSwift好き!Swift愛好会スピンオフ WWDC20セッション要約会 @オンライン」でのLT資料です。

https://love-swift.connpass.com/event/181458/?utm_campaign=event_message_to_selected_participant&utm_source=notifications&utm_medium=email&utm_content=title_link

1d6af7b4c56fbf84d81ebaee4a8ac2e8?s=128

miharu

July 09, 2020
Tweet

Transcript

  1. 2020/07/09 Thu #love_swift WWDC20 “What’s new in location” 位置情報の新機能 1

    miharu
 @_m_rn_dev
  2. 対象としたセッション タイトル “What’s new in location” 位置情報の新機能(27分) https://developer.apple.com/videos/play/wwdc2020/10660/ 内容 •

    位置情報の利⽤権限 • 新機能であるApp Clips と Widgets での使い⽅ LTテーマ:WWDC20 “What’s new in location” #love_swift . 2
  3. LTテーマ:WWDC20 “What’s new in location” #love_swift . このアプリを使うのに 私について本当にそこまで 知る必要あるの?

    3
  4. 基本⽅針 iOS14ではさらにプライバシーを強化し、ユーザーとの信頼関係が⼤事にされている • ユーザーは必要以上の情報をアプリに共有する必要はない。 • アプリは必要以上の位置情報へのアクセス権限を求めてはいけな い。 LTテーマ:WWDC20 “What’s new

    in location” #love_swift . 4
  5. iOS13 • 使⽤中のみ許可 • ⼀度だけ許可 • 許可しない • 常に許可 iOS14

    • 使⽤中のみ許可 • ⼀度だけ許可 • 許可しない • 常に許可 • + • Precise: On/ Off
 =正確な位置情報 位置情報の利⽤権限に新しいオプションが追加 ユーザーは正確な位置情報ではなく、おおよその位置情報のみをアプリに付与できる。 LTテーマ:WWDC20 “What’s new in location” #love_swift . Z 新しい概念が追加された 5
  6. ソースコードの変更点 CLLocationManagerクラスの承認ステータスのメソッドを廃⽌し、プロパティに置き換える。 LTテーマ:WWDC20 “What’s new in location” #love_swift . 6

  7. ソースコードの変更点 アプリがどれだけ正確にユーザーの位置を知ることができるかを示す、新しいインスタンスプロパティが導⼊された。 LTテーマ:WWDC20 “What’s new in location” #love_swift . 7

  8. ソースコードの変更点 コールバックが置き換わった。 authorizationStatus または accuracyAuthorization プロパティの値が変更されるたびに呼び出される。 LTテーマ:WWDC20 “What’s new in

    location” #love_swift . 8
  9. ソースコードの変更点 新しいデリゲート・コールバック・メソッドを実装する⽅法。 authorizationStatus と accuracyAuthorization の両⽅の値を確認する必要がある。 LTテーマ:WWDC20 “What’s new in

    location” #love_swift . 9
  10. 精度が低いプロパティの時、どのように配信されるか • 以前と同様に didUpdateLocations デリゲートに配信。 • オブジェクトとしては、CLLocationCoordinate2Dの中⼼ 点を持ち、⽔平精度 horizontalAccuracyに⼤きな値(1〜 20

    km)を持つ、CLLocationオブジェクト。 • 1時間に4回ほど再計算される。 LTテーマ:WWDC20 “What’s new in location” #love_swift . fullAccuracy reduceAccuracy 10
  11. • 別の動画で紹介されてます。 • 7分半と短めなので、気楽に⾒て イメージの補完をば • ”Design for Location Privacy”


    (位置情報のプライバシーの設計)
 https://developer.apple.com/ videos/play/wwdc2020/10162/ ユースケースはMapアプリで LTテーマ:WWDC20 “What’s new in location” #love_swift . 11
  12. Q. 正確な位置情報を必要とする機能があるアプリで、ユーザーがおおよその位置情 報しか共有していない場合、開発者はどうしたらいい? A. ユーザーを設定画⾯へ誘導し、常に正確な精度にアップグレードす るように依頼する。 B. プロンプトを表示し、⼀時的な位置精度のアップグレードを依頼す る(アプリを閉じない限り有効)。
 ⚠

    なぜ正確な位置情報が必要なのか、明確に説明する⽂字列を表示するために、
 Info.plist の NSLocationTemporaryUsageDescriptionDictionary をキーにした辞書に、 ⽬的キーを追加しなければならない。 LTテーマ:WWDC20 “What’s new in location” #love_swift . 12
  13. バックグラウンドでの位置情報の更新 Visits ある空間に⼊ったり、出たりしたときの時刻は正確。 位置情報は精度が低下する。 LTテーマ:WWDC20 “What’s new in location” #love_swift

    . 13
  14. バックグラウンドでの位置情報の更新 Beacons & Regions 低い精度では使えない。 必要になったタイミングで、ユーザーを設定画⾯へ誘導し、常に正確 な精度にアップグレードするように依頼する。 (ユーザーが許可しなかった場合は、⼊退場通知は配信されない)。 LTテーマ:WWDC20 “What’s

    new in location” #love_swift . 14
  15. Q. そもそもアプリの起動時に正確な精度を要求するのは良くないの? 実際に必要かどうか、よく考える必要がある。 可能な場合は、許可された精度を上げなくてもユーザーがアプリと対 話できるような⽅法でアプリを設計してください、とのこと。 LTテーマ:WWDC20 “What’s new in location”

    #love_swift . 15
  16. Q. 逆に正確な精度を必要としないアプリなんだけど?         • 新しい定数を導⼊して、locationManagerで低い精度にできる。 LTテーマ:WWDC20 “What’s new in location” #love_swift

    . • Info.plistに⽬的キーを設定すると、「Precise: On/ Off」のトグルが 表示されなくなり、デフォルトで低い精度を要求できる。 16
  17. 1. 「常に許可」ができない。 2. 「使⽤中のみ許可」の代わりに、 「明⽇まで使⽤中のみ許可」。
 ✴ 翌朝には⾃動的にクリアされる。
 1. info.plistにNSWidgetWantsLocation キーを含める必要がある。

    2. 位置情報の利⽤許可を要求するプロン プトを表示できない。親アプリから許 可を取得する。 17 App Clips と Widgets での使い⽅ LTテーマ:WWDC20 “What’s new in location” #love_swift . 位置情報を利⽤する場合、アプリと異なる点がある。 App Clips Widgets
  18. 内容のまとめ • 位置情報の利⽤許可が⼤きく変わった。 • 正確な位置情報か、おおよその位置情報か、という新しい概念が 導⼊された。 • ユーザーが⾃分のデータプライバシーをよりコントロールできる ようになった。 •

    App Clips と Widgets での使い⽅。 18 LTテーマ:WWDC20 “What’s new in location” #love_swift .