본문 바로가기

iOS

[iOS] 앱 실행시 일어나는 일들 (App Launch Sequence)

앱 기동시 어떤 작업들이 어떤 순서대로 실행되는지 알아보도록 하겠습니다.

 

앱을 실행하는 과정에는 복잡한 몇 가지 단계들을 거칩니다. 대부분은 UIKit이 자동으로 관리해줍니다. 앱이 실행되는 동안, UIKit 은 커스텀 작업들을 실행시키기 위한 Delegate 메소드들을 호출합니다. 아래의 그림은 앱이 실행될 때부터 초기화될 때까지의 과정들을 나타냅니다.

 

App Launch Sequence

 

  1. 앱은 사용자가 명시적으로 실행하거나 시스템에 의해 암시적으로 실행됩니다.
  2. Xcode가 제공하는 main 함수는 UIKit의 UIApplicationMain() 함수를 호출합니다. (UIApplicationMain() 는 Int32 를 return하는 함수이지만 이 함수는 return을 절대 하지 않습니다.)
  3. UIApplicationMain() 함수는 UIApplication 객체와 App Delegate를 생성합니다. (UIApplication 객체는 싱글턴 객체입니다.)
  4. UIKit은 메인 스토리보드나 nib 파일에서 앱의 기본 인터페이스를 로드합니다.
  5. UIKit은 앱 델리게이트 willFinishLaunchingWithOptions 함수를 호출합니다.
  6. UIKit은 추가적인 앱 델리게이트 메소드들과 뷰 컨트롤러를 호출하는 상태값 복원을 실행합니다.
  7. UIKit은 앱 델리게이트 didFinishLaunchingWithOptions 함수를 호출합니다.

초기화가 완료되면 시스템은 UI를 표시하고 앱 라이프 사이클을 관리하기 위해 Scene DelegateApp Delegate 를 사용합니다.

참조

About the App Launch Sequence