iOS 15에서 추가된 Location Button
iOS 15부터 Location Button이 추가되었습니다.
이것은 "필요한 때에 한 번만 위치 정보의 이용을 허가한다"를 간단하게 실현할 수 있는 버튼입니다.
지금까지는 다음과 같이 「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 에도 대응하고 있습니다.
위치 정보의 사용 허가 요구도 세트로 해 주기 때문에, 구현이 상당히 편해질 것 같네요.
다양한 모양으로 사용자 정의 가능
이 Location Button은 다양한 모양으로 사용자 정의할 수 있습니다.
일반 버튼과 마찬가지로
tintColor
, backgroundColor
, cornerRadius
등의 속성을 사용할 수 있습니다.그러나 예외도 있습니다. 예를 들어 아이콘과 배경색을 동일하게 해 버리면 사용자가 어떤 버튼인지 인식할 수 없게 되어 버리기 때문에, 이 경우는 경고가 표시됩니다.
(동작 확인 중) 위치 정보의 사용을 거부하는 사용자에게도 유효?
사실 여기가 가장 중요한 포인트라고 생각하고 있습니다만, 과거에 위치 정보의 사용을 거부한 유저가 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 go .
이 경우 권한 상태를
NotDetermined
로 되돌리고 위치 정보를 다시 제공할지 여부를 선택할 수 있습니다.일단 위치 정보의 사용을 거부된 사용자에게 다시 허가를 요청할 수 있게 된 것은 큰 업데이트군요
그러나 불행히도 Xcode 13 beta 1 시점에서이 동작을 확인할 수 없습니다. (동작을 확인할 수있는 분이 있으면 알려주세요!)
요약
작년에 이어 애플이 보다 프라이버시 보호에 힘을 쏟고 있는 인상을 받았습니다.
LocationButton을 사용하면 사용자가 현재 위치를 공유하는 타이밍을 보다 세밀하게 제어할 수 있으므로 사용자와의 신뢰를 얻을 수 있을 것 같네요.
Reference
이 문제에 관하여(iOS 15에서 추가된 Location Button), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koogawa/items/acb13e9dc738c1643c02텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)