LoginSignup
27
13

More than 1 year has passed since last update.

iOS 15 で追加された Location Button

Posted at

※本記事は、一般に公開されている情報を元に作成しています。記事中の画像はWWDCのスライドのものを引用させて頂いております

iOS 15 から Location Button が追加された

これは「必要なときに一度だけ位置情報の利用を許可する」を簡単に実現できるボタンです。

image.png

今までは次のように「Current Location」のような UIButton を自分で生成し、requestWhenInUseAuthorization() を呼んでいたと思います。

let button = UIButton()
button.setTitle("Current Location", for: .normal)
button.addTarget(self, action: #selector(showNearByParks), for: .touchUpInside)

@objc func showNearByParks() {
    self.locationManager.requestWhenInUseAuthorization()
    self.locationManager.startUpdatingLocation()
}

iOS 15 からは次のように書けます。

let button = CLLocationButton()
button.label = .currentLocation
button.addTarget(self, action: #selector(showNearByParks), for: .touchUpInside)

@objc func showNearByParks() {
//    self.locationManager.requestWhenInUseAuthorization() <-- 不要に
    self.locationManager.startUpdatingLocation()
}

つまり、位置情報の使用許可リクエストを CLLocationButton が自動でやってくれます。

もちろん SwiftUI にも対応

LocationButton はもちろん SwiftUI にも対応しています。

image.png

位置情報の使用許可リクエストもセットでやってくれるので、実装がだいぶ楽になりそうですね。

様々な形状にカスタマイズ可能

この Location Button は様々な形状にカスタマイズ可能です。

image.png

通常のボタンと同じように tintColor, backgroundColor, cornerRadius などのプロパティが利用可能です。

image.png

ただし例外もあります。たとえばアイコンと背景色を同じにしてしまうとユーザが何のボタンなのか認識できなくなってしまうため、この場合は警告が表示されます。

image.png

(動作確認中)位置情報の使用を拒否しているユーザーにも有効?

実はここが一番の重要ポイントだと思っているのですが、過去に位置情報の使用を拒否したユーザーが LocationButton を押すとどうなるでしょうか?

If someone, who has chosen "Don't Allow" authorization on your app in the past taps our new Location Button, they will see this button introduction prompt and have the opportunity to move your app back to NotDetermined and use Location Button going on forward.

その際には 許可ステータスを NotDetermined に戻し、再び位置情報を提供するかどうか選択する機会が得られる とのことです。

image.png

いちど位置情報の使用を拒否されたユーザーに、再び許可をリクエストできるようになったのは大きなアップデートですね :smiley:

しかし、残念ながら Xcode 13 beta 1 の時点ではこの動作を確認できませんでした。(動作を確認できた方がいましたら教えて下さい!)

まとめ

昨年に引き続き、Appleがよりプライバシー保護に力を注いでいる印象を受けました。
LocationButton を使用するとユーザーが現在地を共有するタイミングをより細かく制御できるため、ユーザーとの信頼を得ることができそうですね。

27
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
13