"Learn the order that your custom code executes at launch time."
launch 타임에 커스텀 코드가 실행되는 순서에 대해 알아봅니다.
앱을 launch 하는 것은 UIKit
이 대부분 자동으로 처리하는 복잡한 단계의 연속에 관여합니다. launch 연쇄가 일어나는 동안 UIKit
은 커스텀 작업을 수행할 수 있도록 앱 딜리게이트의 메소드들을 호출합니다. Figure 1은 앱이 초기화된 것으로 간주될 때까지 앱이 launch 된 시점으로부터 발생하는 단계의 연속을 보여주고 있습니다.
Figure 1 The app launch and initialization sequence
UIKit
의 UIApplicationMaim(_:_:_:_:)
함수를 호출합니다.UIApplicationMain(_:_:_:_:)
함수가 UIApplication
객체를 및 앱 딜리게이트를 생성합니다.UIKit
은 메인 스토리보드 혹은 nib 파일로부터 앱의 디폴트 인터페이스를 로드합니다.UIKit
이 앱 딜리게이트의 application(_:willFinishLaunchingWithOptions:)
메소드를 호출합니다.UIKit
이 앱 딜리게이트 및 뷰 컨트롤러의 추가적 메소드를 호출하는 상태 복구를 수행합니다.UIKit
이 앱 딜리게이트의 application(_:didFinishLaunchingWithOptions:)
메소드를 호출합니다.초기화가 완료되면 시스템은 씬 딜리게이트 혹은 앱 딜리게이트를 사용해서 UI를 표시하고 앱에 대한 생명주기를 관리합니다.
앱 환경의 적합한 설정을 가능하게 합니다.
https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app/performing_one-time_setup_for_your_app
https://velog.io/@panther222128/Performing-One-Time-Setup-for-Your-App
시스템 종료 후 앱을 이전 상태로 되돌립니다.
https://developer.apple.com/documentation/uikit/view_controllers/preserving_your_app_s_ui_across_launches
https://velog.io/@panther222128/Preserving-Your-Apps-UI-Across-Launches