Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Code
- Apple
- geofencing
- JPA
- Archive
- Git
- error
- IOS
- darkmode
- github
- 한글
- SwiftUI
- Xcode
- appstore
- window
- 개발자
- 웹뷰
- FLUTTER
- iOS16
- stack
- mac
- Session
- MacOS
- Notification
- Realm
- Swift
- rxswift
- UIButton
- Firebase
- view
Archives
- Today
- Total
EEYatHo 앱 깎는 이야기
Document ) 지리적 지역 근접성 Monitoring 본문
반응형
상태 모니터링을 사용하면 사용자가 특정 지역에 들어오거나 나가는 시점을 확인할 수 있습니다.
개요
- 상태 모니터링(지오펜싱이라고도 함)은 사용자가 지리적 지역에 들어가거나 나갈 때 앱에게 신호를 보내는 것
- 지역 모니터링을 사용하여 위치 관련 작업을 수행할 수 있음
- 예를 들어, Reminders 앱은 사용자가 지정된 위치에 도착하거나 떠날 때 알림을 트리거하는 데 사용합니다. (아래 그림 참조)
- iOS에서 시스템은 지역을 모니터링하고 조건이 만족 상태와 만족하지 않은 상태 사이에서 변경될 때 필요에 따라 앱을 깨웁니다.
- macOS에서 조건 모니터링은 앱이 실행 중(포그라운드 또는 백그라운드)이고 사용자 시스템이 깨어 있는 동안에만 작동합니다.
- 시스템은 지역 관련 알림을 전달하기 위해 Mac 앱을 시작하지 않습니다.
지리적 조건 정의 및 모니터링
- CLCircularGeographicCondition 를 사용하여 지리적 좌표를 중심으로 하는 원형 영역을 정의합니다.
- 조건의 반경은 경계를 정의합니다.
- 모니터링하려는 조건을 정의하고 CLLocationManager객체의 startMonitoring(for:)메서드를 호출하여 시스템에 등록합니다.
- 시스템은 사용자가 명시적으로 중지를 요청하거나 장치가 재부팅될 때까지 조건을 모니터링합니다.
- 아래 코드는 메서드 호출자가 제공한 지점을 중심으로 조건을 구성하고 등록하는 방법을 보여줍니다.
- 이 작업은 200m 반경을 사용하여 조건의 경계를 정의한 다음 Core Location에서 비동기적으로 AsyncSequence이벤트가 도착할 때까지 기다립니다.
Task {
// Create a custom monitor.
let monitor = await CLMonitor("my_custom_monitor")
// Register the condition for 200 meters.
let center = myFirstLocation;
let condition = CLCircularGeographicCondition(center: center1, radius: 200)
// Add the condition to the monitor.
monitor.add(condition, identifier: "stay_within_200_meters")
// Start monitoring.
for try await event in monitor.events {
// Respond to events.
if event.state == .satisfied {
// Process the 200 meter condition.
}
}
}
[주의사항]
- 조건은 특정 하드웨어 기능에 의존하는 공유 리소스입니다.
- 모든 앱이 조건 모니터링에 참여할 수 있도록 하기 위해 Core Location은 단일 앱이 모든 유형의 20개 이상의 조건을 동시에 모니터링하는 것을 방지합니다.
- 이 제한에 따라 모니터링하려는 항목의 우선순위를 지정합니다.
이벤트에 응답하기
- 앱의 상태 변화가 있을 때마다 Core Location은 모니터의 AsyncSequence를 통해 이벤트를 제공합니다 .
- 조건이 충족될 때 iOS 앱이 실행 중이 아니면 시스템은 앱을 시작하려고 시도합니다.
- 앱이 다시 시작되면 동일한 식별자로 모니터를 다시 만드는 것은 사용자의 책임입니다.
- 모니터링은 사용자가 재부팅 후 기기를 잠금 해제한 후에만 발생할 수 있습니다.
- 조건이 변경되는 시점을 파악하려면 이벤트를 반복하는 것이 중요합니다.
'iOS, Swift > WWDC, Session, Docu' 카테고리의 다른 글
WWDC23 ) 간소화된 location updates 알아보기 (1) | 2024.11.14 |
---|---|
Document ) Core Location Monitor 소개 (1) | 2024.11.01 |
AppStore Session ) 앱 분석을 통해 유입 경로를 측정하고 개선하기 (0) | 2023.04.20 |
AppStore Session ) 맞춤형 제품 페이지 시작하기 (0) | 2023.04.20 |
AppStore Session ) 디자인 챌린지 Part. 2 (0) | 2023.03.29 |
Comments