大器晩成

AppDelegate, Scene Delegate 본문

iOS/UiKit

AppDelegate, Scene Delegate

zerobugpark 2024. 12. 30. 12:50

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