iOS 개발 기록

iOS - 앱의 라이프 사이클 본문

iOS

iOS - 앱의 라이프 사이클

택꽁이 2022. 7. 21. 18:31
728x90

iOS 앱의 라이프사이클

앱이 실행/종료 및 Foreground/Background 상태에 있을 때, 시스템이 발생시키는 Event에 의해 앱 상태가 전환되는 일련의 과정. 

iOS13 이후로는 Scene 기반의 UISceneDelegate를 지원하고 12이전에는 UIApplicationDelegate를 사용. 

 

 

Respond to Scene-Based Life-Cycle Events

scene마다 별도의 Life-cycle event를 전달한다. scene는 실행중인 앱 UI 인스턴스를 의미한다. 각각의 Scene은 고유의 life-cycle을 가지므로 서로 다른 실행 상태일 수 있다.  

 

scene의 상태 변화는 다음과 같다.

 

1. 사용자나 시스템이 새로운 scene을 요청하면, UIKit이 새로운 scene을 만들고 Unattached 상태로 보낸다.

2.  유저가 요청한 scene은 화면에 나타나는 Foreground로 빠르게 이동한다. 

3. 시스템이 요청한 scene은 주로 이벤트를 처리할 수 있는 Background로 이동한다.

 

 

예를 들어 시스템은 위치 이벤트를 처리하기 위해 scene을 background에 런치할 수 있다. 

4. 사용자가 앱의 UI를 닫으면, UIKit은 관련 scene을 Background 상태로 보내고 결국 Suspended 상태가 된다. 

 

UIKit은 자원 회수를 위해 언제든지 background나 suspended 상태에 있는 scene의 연결을 끊고 해당 scene을 unattaced 상태로 돌릴 수 있다.