Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WWDC20: What's new in location の要約

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

miharu

July 09, 2020
Tweet

More Decks by miharu

Other Decks in Programming

Transcript

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

    @_m_rn_dev

    View Slide

  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

    View Slide

  3. LTテーマ:WWDC20 “What’s new in location” #love_swift .
    このアプリを使うのに
    私について本当にそこまで
    知る必要あるの?
    3

    View Slide

  4. 基本⽅針
    iOS14ではさらにプライバシーを強化し、ユーザーとの信頼関係が⼤事にされている
    • ユーザーは必要以上の情報をアプリに共有する必要はない。

    • アプリは必要以上の位置情報へのアクセス権限を求めてはいけな
    い。
    LTテーマ:WWDC20 “What’s new in location” #love_swift .
    4

    View Slide

  5. iOS13
    • 使⽤中のみ許可

    • ⼀度だけ許可

    • 許可しない

    • 常に許可

    iOS14
    • 使⽤中のみ許可

    • ⼀度だけ許可

    • 許可しない

    • 常に許可

    • +

    • Precise: On/ Off

    =正確な位置情報
    位置情報の利⽤権限に新しいオプションが追加
    ユーザーは正確な位置情報ではなく、おおよその位置情報のみをアプリに付与できる。
    LTテーマ:WWDC20 “What’s new in location” #love_swift .
    Z
    新しい概念が追加された
    5

    View Slide

  6. ソースコードの変更点
    CLLocationManagerクラスの承認ステータスのメソッドを廃⽌し、プロパティに置き換える。
    LTテーマ:WWDC20 “What’s new in location” #love_swift .
    6

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. 精度が低いプロパティの時、どのように配信されるか
    • 以前と同様に didUpdateLocations デリゲートに配信。

    • オブジェクトとしては、CLLocationCoordinate2Dの中⼼
    点を持ち、⽔平精度 horizontalAccuracyに⼤きな値(1〜
    20 km)を持つ、CLLocationオブジェクト。

    • 1時間に4回ほど再計算される。
    LTテーマ:WWDC20 “What’s new in location” #love_swift .
    fullAccuracy
    reduceAccuracy
    10

    View Slide

  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

    View Slide

  12. Q.
    正確な位置情報を必要とする機能があるアプリで、ユーザーがおおよその位置情
    報しか共有していない場合、開発者はどうしたらいい?
    A. ユーザーを設定画⾯へ誘導し、常に正確な精度にアップグレードす
    るように依頼する。

    B. プロンプトを表示し、⼀時的な位置精度のアップグレードを依頼す
    る(アプリを閉じない限り有効)。

    ⚠ なぜ正確な位置情報が必要なのか、明確に説明する⽂字列を表示するために、

    Info.plist の NSLocationTemporaryUsageDescriptionDictionary をキーにした辞書に、
    ⽬的キーを追加しなければならない。
    LTテーマ:WWDC20 “What’s new in location” #love_swift .
    12

    View Slide

  13. バックグラウンドでの位置情報の更新
    Visits
    ある空間に⼊ったり、出たりしたときの時刻は正確。

    位置情報は精度が低下する。
    LTテーマ:WWDC20 “What’s new in location” #love_swift .
    13

    View Slide

  14. バックグラウンドでの位置情報の更新
    Beacons & Regions
    低い精度では使えない。

    必要になったタイミングで、ユーザーを設定画⾯へ誘導し、常に正確
    な精度にアップグレードするように依頼する。

    (ユーザーが許可しなかった場合は、⼊退場通知は配信されない)。
    LTテーマ:WWDC20 “What’s new in location” #love_swift .
    14

    View Slide

  15. Q.
    そもそもアプリの起動時に正確な精度を要求するのは良くないの?
    実際に必要かどうか、よく考える必要がある。

    可能な場合は、許可された精度を上げなくてもユーザーがアプリと対
    話できるような⽅法でアプリを設計してください、とのこと。
    LTテーマ:WWDC20 “What’s new in location” #love_swift .
    15

    View Slide

  16. Q.
    逆に正確な精度を必要としないアプリなんだけど?        
    • 新しい定数を導⼊して、locationManagerで低い精度にできる。
    LTテーマ:WWDC20 “What’s new in location” #love_swift .
    • Info.plistに⽬的キーを設定すると、「Precise: On/ Off」のトグルが
    表示されなくなり、デフォルトで低い精度を要求できる。
    16

    View Slide

  17. 1. 「常に許可」ができない。

    2. 「使⽤中のみ許可」の代わりに、
    「明⽇まで使⽤中のみ許可」。

    ✴ 翌朝には⾃動的にクリアされる。

    1. info.plistにNSWidgetWantsLocation
    キーを含める必要がある。
    2. 位置情報の利⽤許可を要求するプロン
    プトを表示できない。親アプリから許
    可を取得する。
    17
    App Clips と Widgets での使い⽅
    LTテーマ:WWDC20 “What’s new in location” #love_swift .
    位置情報を利⽤する場合、アプリと異なる点がある。
    App Clips Widgets

    View Slide

  18. 内容のまとめ
    • 位置情報の利⽤許可が⼤きく変わった。

    • 正確な位置情報か、おおよその位置情報か、という新しい概念が
    導⼊された。

    • ユーザーが⾃分のデータプライバシーをよりコントロールできる
    ようになった。

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

    View Slide