소피it블로그

[UIKit] UIApplicationDelegate 정리 본문

개발_iOS/UIKit

[UIKit] UIApplicationDelegate 정리

sophie_l 2022. 8. 10. 23:45

https://developer.apple.com/documentation/uikit/uiapplicationdelegate

 

Apple Developer Documentation

 

developer.apple.com

앱의 공통된 행동을 관리하기 위한 일련의 방법

 

1. 선언

@MainActor protocol UIApplicationDelegate

2. 개요

 

앱의 delegate 객체는 앱의 공통된 행위를 관리한다. 앱 delegate는 앱의 기본 객체가 되며, UIApplication과 연계되어 시스템과의 상호작용을 관리한다. UIApplication 객체처럼, UIKit는 앱 delegate 객체를 앱의 런치 사이클의 초기에 생성하여 항상 존재할 수 있게 해준다.

앱의 delegate 객체를 다음과 같은 업무 처리에 사용하라:

 

  • 앱의 중심이 되는 데이터 구조를 초기화하기
  • 앱의 씬을 구성하기
  • 앱 외부에서 발생하는 알림에 응답하기 (예를 들면 메모리 부족 경고, 다운로드 완료 알림 등)
  • 앱의 씬이나 뷰, 혹은 뷰 컨트롤러에 한정된 게 아닌 앱 자체를 타겟으로 하는 이벤트에 응답하기
  • 애플 푸쉬 알림 서비스 등 런치 시에 필요한 서비스에 등록하기

3. iOS 12와 그 이전 버전에서의 라이프 사이클 관리

 

iOS 12와 그 이전 버전에서는 앱의 주된 라이프 사이클 이벤트를 관리하기 위해 app delegate를 사용한다. 구체적으로 말하자면 앱 delegate의 메서드를 사용하여 앱이 포그라운드나 백그라운드로 옮겨질 때 앱의 상태를 갱신하도록 한다.