앱의 생명주기 (App LifeCycle)
Q) Foreground와 Background의 공통점?
•
앱이 메모리에 올라가 있다.
Q) Foreground와 Background의 차이점?
•
Foreground일 때는 앱이 화면을 점유하고 있고,
•
Background일 떄는 앱이 화면을 점유하고 있지 않다 (화면에서는 내려갔지만, 메모리에는 올라가 있다)
Not Running
•
앱의 실행 전
Foreground
•
화면을 점유
Inactive
◦
iOS가 관리 - 외부적인 요인에 의해 잠시 거쳐가는 영역
◦
ex) 문자 메시지로 인해 잠시 앱 컨트롤 불가
Active
◦
앱이 실행 중
Background
•
화면을 점유하고 있지 않음
Background Running
◦
제한적인 실행만 가능하도록 OS에서 통제
◦
ex) 멜론 백그라운드 플레이
Suspended
◦
다음 실행을 기다림 / 대기 상태
→ Not Running을 제외하고 아직 메모리에 올라가 있는 상태
Scene 도입 전
Scene 도입 후
SceneDelegate
•
UIWindowSceneDelegate
AppDelegate
•
UIApplicationDelegate
SceneDelegate
•
다른 Scene으로 넘어가거나, 그런 시점들을 파악하기 위한 대리자 (Foreground / Background)
•
Scene(멀리태스킹의 창)의 개념이 도입되면서, AppDelegate의 역할에서 몇 가지 개념을 SceneDelegate로 넘겼다.
여러 개의 Scene이 열려있어도, 결국 유저가 실제로 동작시키는 것은 하나의 Scene
SceneDelegate를 이용한 iOS 13 이후의 앱 생명주기 흐름도