반응형
앱 기동시 어떤 작업들이 어떤 순서대로 실행되는지 알아보도록 하겠습니다.
앱을 실행하는 과정에는 복잡한 몇 가지 단계들을 거칩니다. 대부분은 UIKit이 자동으로 관리해줍니다. 앱이 실행되는 동안, UIKit 은 커스텀 작업들을 실행시키기 위한 Delegate 메소드들을 호출합니다. 아래의 그림은 앱이 실행될 때부터 초기화될 때까지의 과정들을 나타냅니다.
- 앱은 사용자가 명시적으로 실행하거나 시스템에 의해 암시적으로 실행됩니다.
- Xcode가 제공하는 main 함수는 UIKit의 UIApplicationMain() 함수를 호출합니다. (UIApplicationMain() 는 Int32 를 return하는 함수이지만 이 함수는 return을 절대 하지 않습니다.)
- UIApplicationMain() 함수는 UIApplication 객체와 App Delegate를 생성합니다. (UIApplication 객체는 싱글턴 객체입니다.)
- UIKit은 메인 스토리보드나 nib 파일에서 앱의 기본 인터페이스를 로드합니다.
- UIKit은 앱 델리게이트 willFinishLaunchingWithOptions 함수를 호출합니다.
- UIKit은 추가적인 앱 델리게이트 메소드들과 뷰 컨트롤러를 호출하는 상태값 복원을 실행합니다.
- UIKit은 앱 델리게이트 didFinishLaunchingWithOptions 함수를 호출합니다.
초기화가 완료되면 시스템은 UI를 표시하고 앱 라이프 사이클을 관리하기 위해 Scene Delegate 나 App Delegate 를 사용합니다.
참조
반응형
'iOS' 카테고리의 다른 글
[iOS] Keyframe Animation으로 애니메이션 구현하는 방법 (0) | 2019.12.15 |
---|---|
[iOS] UIView Animation으로 애니메이션 구현하는 방법 (0) | 2019.12.15 |
[iOS] Operation? Operation Queue? 작업을 객체로 만들어보자! (0) | 2019.12.15 |
[iOS] 강한 참조 사이클 (순환 참조) 해결하기 2편 (0) | 2019.12.15 |
[iOS] 강한 참조 사이클 (순환 참조) 해결하기 1편 (0) | 2019.12.15 |