728x90
App launch Sequence
- 앱을 런치할 때 시스템에 의해 복잡한 여러 단계의 시퀀스가 실행이 된다.
- 런치 시퀀스동안, UIKit은 app delegate에 있는 메소드들을 호출해서 app이 사용자 상호작용에 대비하고, 앱의 요구사항에 맞는 여러 작업들을 실행할 수 있게 한다.
- user나 시스템이 앱을 실행 시, 시스템은 앱을 prewarm시킨다.
- iOS15 이후 버전에서는, 시스템은 디바이스 상태에 따라서 앱을 prewarm 시킬 수 있는데, 앱이 사용가능한 상태가 되기 전까지 사용자가 기다리는 시간을 최소화하기 위해 nonrunning 애플리케이션 프로세스들을 실행한다.
- 시스템이 Xcode에서 제공하는 'main()' 함수를 실행한다.
- main() 함수는 UIApplication과 app delegate 인스턴스를 생성하는 UIApplicationMain(_:_:_:_:)을 호출한다.
- UIKit은 Info.plist파일이나 target의 커스텀 프로퍼티 탭에 정의된 default storyboard를 로드해온다. 만약 앱이 이런 단계를 스킵한다면 storyboard를 사용하지 않는다.
- UIKit이 app delegate에 있는 application(_:willFinishLaunchingWithOptions:) 메소드를 호출한다.
- UIKit이 app의 ViewController들과 app delegate에 있는 추가적인 메소드들을 실행하기 위해 UI Restoration을 진행한다.
- UIKit이 app delegate에 있는 application(_:didFinishLaunchingWithOptions:) 메소드를 호출한다
요약
1 | 시스템이 앱을 prewarm |
2 | main() 함수 실행 |
3 | UIApplicationMain()호출해서 app delegate, UIApplication 인스턴스 생성 |
4 | storyboard 로드 |
5 | application(_:willFinishLaunchingWithOptions:) 호출 |
6 | UI Restoration |
7 | application(_:didFinishLaunchingWithOptions:) 호출 |
728x90
'iOS > 설명' 카테고리의 다른 글
[iOS] 상황별 app life cycle 메서드 호출 순서 (0) | 2022.06.06 |
---|---|
[iOS] 앱 실행 시 UI Restoration Process (0) | 2022.06.06 |
[iOS] CFGetRetainCount (0) | 2022.06.02 |
[iOS] Background Modes의 Location Updates (0) | 2022.05.30 |
[iOS] Xcode에서 Application state 확인하기 (0) | 2022.05.30 |
댓글