반응형
iOS APP 동작 과정
- APP Touch
- main() 함수에서 UIApplicationMain() 함수 호출 및 UIApplication 객체 생성
- UIApplication 객체에서 info.plist에 존재하는 앱에 필요한 데이터 및 객체 로드
- Custom Code를 처리하기 위한 AppDelegate 생성 후 UIApplication 객체와 연결
- 실행 준비 후 application(_:willFinishLaunchingWithOptions:) 호출
- 실행이 완료 된 후 화면에 노출되기 직전에 application(_:didFinishLaunchingWithOptions:) 호출
- Main run loop 실행 및 이벤트 큐를 이용해 이벤트 순차 처리
- 앱을 더이상 사용하지 않을 경우 iOS System에 terminate 메시지 전달, applicationWillTerminate(_:) 호출
- APP 종료
iOS APP 상태 변화
- Not Running : 실행되지 않았거나 시스템에 의해 종료된 상태
- Inactive : 실행 중이지만 이벤트를 받고있지 않은 상태 (EX : 앱 실행 중 알림 창이 화면을 덮어 앱이 실질적으로 이벤트를 받고 있지 못하는 상황)
- Active : 애플리케이션이 실질적으로 활동하고 있는 상태
- Background : 백그라운드 상태에서 실질적인 동작을 하고 있는 상태
- Suspended : 백그라운드 상태에서 활동을 멈춘 상태 (메모리가 부족할 때 시스템 강제 종료)
AppDelegate 상태
AppDelegate란 말 그대로 앱과 시스템을 연결하기 위해 필요한 Delegate 메소드들을 담고 있습니다.
- application:willFinishLaunchingWithOptions: 어플리케이션이 최초 실행될 때 호출되는 메소드
- application:didFinishLaunchingWithOptions: 어플리케이션이 실행된 직후 사용자의 화면에 보여지기 직전에 호출
- applicationDidBecomeActive: 어플리케이션이 Active 상태로 전환된 직후 호출
- applicationWillResignActive: 어플리케이션이 Inactive 상태로 전환되기 직전에 호출
- applicationDidEnterBackground: 어플리케이션이 백그라운드 상태로 전환된 직후 호출
- applicationWillEnterForeground: 어플리케이션이 Active 상태가 되기 직전에, 화면에 보여지기 직전의 시점에 호출
- applicationWillTerminate: 어플리케이션이 종료되기 직전에 호출
Reference
'Study > Mobile' 카테고리의 다른 글
[Kotlin] 딥링크 (DeepLink) (0) | 2022.08.07 |
---|---|
[Kotlin] WebView 사용 방법 (0) | 2022.08.07 |
[Android] 4대 Component (0) | 2022.08.05 |
[Kotlin] ROOM Database 사용 방법 (0) | 2022.01.10 |
[Kotlin] Intellij에서 Anroid 세팅 (0) | 2022.01.04 |
댓글