기본 정보
ExtendedSessionManager 모듈은 애플워치 앱에서 extended runtime session 이라는 기능을 활용하기 위해서 사용되는 모듈입니다. ( extended runtime session 애플 공식문서 )
애플워치 앱은 일반적으로 사용자가 손목을 내리는 경우 백그라운드로 전환되어 실행이 일시중지됩니다. 하지만 extended runtime session 을 도입한 앱은 앱이 백그라운드로 전환되어도 특정 로직을 계속해서 실행할 수 있습니다.
번핏 애플워치 앱에서는 휴식타이머 알림이 백그라운드에서도 잘 울리도록 하기 위해 extended runtime session이 사용되었습니다.
ExtendedSesssionManager 파일은 ExtendedSession 폴더 내에 위치하고 있습니다.
주요 로직 명세
객체 개요
ExtendedSessionManager 는 앱 실행 시 인스턴스가 하나만 초기화되어 앱이 종료될 때까지 사용되는 싱글톤 객체입니다.
또한 extended runtime session을 시작하고 관리하기 위해서는 ExtendedSessionManager 는 WKExtendedRuntimeSessionDelegate 프로토콜을 상속하는 객체로 선언되어야 합니다.
// 외부에서 shared라는 변수를 통해 동일한 인스턴스에 접근해서 사용하는 싱글톤 객체입니다.
// WKExtendedRuntimeSessionDelegate 프로토콜을 상속합니다.
class ExtendedSessionManager: NSObject, ObservableObject, WKExtendedRuntimeSessionDelegate {
static let shared = ExtendedSessionManager()
//...다른 속성 및 메서드
}
Swift
복사
주요 메서드 명세
startSession()
stopSession()
