Notice
Recent Posts
Recent Comments
Link
大器晩成
AppDelegate, Scene Delegate 본문
AppDelegate / Scene Delegate
- AppDelegate와 SceneDelegate는 iOS 앱의 생명주기를 관리한다.
- AppDelegate는 주로 앱이 시작될 때나, 백그라운드로 갈때 종료 될 때 사용된다.
- SceneDelegate는 iOS 13부터 도입된 멀티 씬를 지원하기 위한 것으로, 개별적인 씬의 생명주기를 관리한다. (iOS 13이전에는 AppDelegate는 사용되었음)
iOS 12 이전 - 앱 기반 라이프 사이클
실행 후 UI가 화면에 표시될지 여부에 따라서 시스템이 앱을 비활성화 또는 백그라운드 상태로 전환한다.
foreground로 시작할 때 시스템은 앱을 자동으로 active 상태로 전환한다. 그 후에는 앱이 종료될때까지 inactive/ active / background만 변한다.
- Not Running → 앱 시작(Inactive) → Active (Foreground)
- Active → 홈 버튼/다른 앱(Inactive) → Background
- Background → 활동 중단 → Suspended
- Suspended → 시스템 종료/사용자 강제 종료 → Not Running
- not running - 아직 실행하지 않는 상태이거나 실행중인데 시스템에 의해 종료된 상태
- inActive - 앱이 foreground 상태로 돌아가지만 이벤트는 받지 않는 상태, 앱의 상태 전환 과정에서 잠깐 머무는 단계 inActive 상태는 보통 다른 앱에 의해 중단되었을 때 발생 ex. 전화가 올 때, 알림을 받을 때
- Active - 이벤트를 받는 단계/ 일반적으로 앱이 돌아가는 상태
- background - 앱이 suspended로 진입하기 전 상태, 작업하는 중 (사실상 앱의 종료) 대부분 앱은 suspended상태로 이행하는 도중에 일시적으로 이 상태에 진입하지만 파일 다운로드, 업로드 등 특정 시간동안 이 상태로 남아있게 되는 경우도 있음
- suspended - 앱이 백그라운드로 전환된 후 시스템에 의해 자동으로 종료되지 않도록 유지되는 상태
iOS 13 이후 - 씬 기반 라이프 사이클 이벤트
- Unattached : Unattached 상태는 Scene이 앱과 연결되지 않거나 사용되지 않는 상태, 이는 앱의 생명주기에서 Scene이 연결되지 않았을 때나 연결이 해제되었을 때 발생할 수 있다.
- Foreground Inactive/ Active : 사용자가 요청하는 Scene은 빠르게 foreground로 이동한다.
- Background : 시스템이 요청한 Scene은 이벤트를 처리할 수 있도록 background로 이동한다.
- Suspended : Background 상태에서 일정 시간이 지나거나, 시스템의 자원이 부족하면 Scene은 Suspended 상태로 전환
728x90
'iOS > UiKit' 카테고리의 다른 글
UIStackView (0) | 2025.01.05 |
---|---|
Table View Controller - 2탄 (실전편) (0) | 2025.01.05 |
TableViewController - Dynamic , Static (0) | 2025.01.05 |
Auto Layout (0) | 2025.01.02 |
View Controller 생명주기(상태변화) (0) | 2025.01.01 |