iOS 15에서 추가된 Location Button

6025 단어 iOSiOS15WWDCWWDC2021
※본 기사는, 공개적으로 공개된 정보 를 바탕으로 작성하고 있습니다. 기사중의 화상은 WWDC의 슬라이드의 것을 인용시키고 받고 있습니다
  • Meet the Location Button - WWDC 2021 - Videos - Apple Developer

  • 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을 사용하면 사용자가 현재 위치를 공유하는 타이밍을 보다 세밀하게 제어할 수 있으므로 사용자와의 신뢰를 얻을 수 있을 것 같네요.

    좋은 웹페이지 즐겨찾기