본문 바로가기

공부/iOS

About the App Launch Sequence 앱 런치 시퀀스에 대하여

안녕하세요. brody입니다

 

거의 2주 만에 Documents 관련 포스팅을 하네요... 

 

개인 앱 개발을 하느냐고 시간이 이렇게나 빨리 가는 줄 몰랐어요 ㄷㄷ 

 

그래도 이번 아티클은 짧으니까 가볍게 시작해볼게요

 

애플 원문 링크는 아래와 같습니다

 

https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app/about_the_app_launch_sequence


 

About the App Launch Sequence 

시작 시 사용자의 커스텀 코드가 실행되는 순서를 알아봅니다.

 

OverView

앱을 실행하면 복잡한 단계 순서가 필요하며, UIKit이 대부분 자동으로 처리해줍니다.

 

launch sequence 하는 동안, UIKit은 custom tasks를 수행할 수 있도록 App delegate의 메서드를 호출합니다.

 

아래의 [그림1]은 앱이 시작된 후 초기화된 것으로 간주될 때까지 발생하는 일련의 단계를 보여줍니다.

 

앱 시작 및 초기화 시퀀스

 



1. 앱은 사용자에 의해 명시적 또는 시스템에 의해 암시적으로 시작됩니다. 

2. Xcode에서 제공하는 메인 함수는 UIKit의 UIApplicationMain(_:_:_:_:) 함수를 호출합니다.

3. UIApplicationMain(_:_:_:_:) 함수는 UIapplication 객체와 앱 델리게이트를 생성합니다.

4. UIKit은 메인 스토리 보드 또는 nib 파일에서 앱의 기본 인터페이스를 로드합니다.

5. UIKit은 app delegate의 application(_: willFinishiLaunchingWithOptions:) 메소드를 호출합니다.

6. UIKit은 상태 복원을 수행하며(performs state restoration), app delegate 및 view controller의 추가 메서드를 호출합니다.

7. UIKit는 app delegate의 application(_: didFinishLaunchingWithOptions) 메소드를 호출합니다. 

 

초기화가 완료되면 시스템은 scene delegate 또는 app delegate를 사용하여 UI를 표시하고 app life cycle를 관리합니다.

 


여기까지 입니다.

 

엄청 짧고 간단하죠??

 

요약해보자면 

앱이 실행되면 UIKit이 알아서 UIApplicationMain함수를 이용하여 UIApplication 객체와 앱 델리게이트를 생성해준다.

원한다면 app delegate의 method에서 custom tasks를 처리할 수 있다.

 

이 정도네요.  그럼 오늘은 여기까지 할게요~

 

ㅅㄱㄹ!