iOS 앱 실행 중이지 않을 때 위치정보 처리

OQ·2022년 3월 11일
0

iOS

목록 보기
5/8
post-thumbnail

일단 기본적으로 'Foreground 상태'에서는 사용자가 권한을 허용하는 한 대부분이 작업이 가능합니다.

여기서 'Backgound 상태'랑 'Not running 상태'에서 위치 처리 기능이 어디까지 허용되는지 알아보겠습니다.
(위치정보를 가지고 서버랑 통신하는 것까지를 기준으로 작성되었습니다.)

iOS의 앱 라이프사이클을 총 5가지 상태가 있습니다.
Foreground 상태 - Active, Inactive
Background 상태 - Running, Suspend
앱 미실행 상태 - Not Runing

앱이 백그라운드 상태 때에도 위치정보 처리 가능하냐?

  • 가능 합니다. 다만 사용자가 'When In Use' 권한을 허용해야하고 백그라운드 상태일 때 'background location usage indicator'가 활성화되어서 사용자 입장에서 약간 거슬릴 수도 있습니다.

앱이 실행 중이지 않을 때도 위치정보 체크 가능하냐?

  • 가능 합니다. 다만 사용자가 'Always' 권한을 허용해야하고 몇가지 제한사항이 있습니다.
    제한 사항은 다음과 같습니다
    1. 바로 전에 찍힌 위치 값에서 500미터 이상 멀어야합니다.
    2. 최소 5분 이상은 경과되어야 한다고 합니다.
    3. 위 두가지 사항을 총족해도 OS에서 여유가 없다고 판단되면 작동되지 않을 수 있습니다.
  • 'background location usage indicator'가 활성화되지 않아서 사용자 입장에서 거슬릴 것은 없습니다. 다만 OS에서 사용자에게 인지시키기 위해 '몇달동안 ㅇㅇㅇ앱에서 위치정보를 N번 사용하였습니다' 라는 얼럿이 뜰 수도 있습니다.
  • 관련 키워드:
    - startMonitoringSignificantLocationChanges()
    - launchOptions?[UIApplicationLaunchOptionsKey.location]

기획자가 "안드로이드는 된다던데?" 라는 말을 꺼낸다면 "애플은 사용자의 프라이버시와 배터리 소모를 중요하게 여긴다구욧" 이라고 하시면 됩니다.

profile
덕업일치 iOS 개발자

0개의 댓글