iOS 앱의 생명 주기 개요
iOS 앱은 사용자의 동작과 시스템 이벤트에 따라 여러 상태를 거친다.
이 과정에서 앱이 실행되고 종료되는 과정이 결정된다.
UIApplication의 상태 변화
앱의 상태 변화는 다음과 같이 이루어진다.
Not Running: 앱이 실행되지 않은 상태
Inactive: 앱이 실행 중이지만 사용자 입력을 받지 않는 상태
Active: 앱이 실행 중이며 사용자 입력을 받는 상태
Background: 앱이 백그라운드에서 실행되는 상태
Suspended: 앱이 메모리에 있지만 실행되지 않는 상태
AppDelegate와 SceneDelegate
AppDelegate: 앱의 전역적인 이벤트를 처리하는 역할
SceneDelegate: 멀티 윈도우 지원을 위한 장치별 UI 상태 관리
생명 주기 관련 메서드
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
print("앱이 실행됨")
return true
}
func applicationDidEnterBackground(_ application: UIApplication) {
print("앱이 백그라운드로 이동")
}
func applicationWillTerminate(_ application: UIApplication) {
print("앱이 종료됨")
}
}