본문 바로가기
Study/Mobile

iOS Application Life Cycle

by Becoming a Hacker 2022. 3. 18.
반응형

iOS APP 동작 과정

  1. APP Touch
  2. main() 함수에서 UIApplicationMain() 함수 호출 및 UIApplication 객체 생성
  3. UIApplication 객체에서 info.plist에 존재하는 앱에 필요한 데이터 및 객체 로드
  4. Custom Code를 처리하기 위한 AppDelegate 생성 후 UIApplication 객체와 연결
  5. 실행 준비 후 application(_:willFinishLaunchingWithOptions:) 호출
  6. 실행이 완료 된 후 화면에 노출되기 직전에 application(_:didFinishLaunchingWithOptions:) 호출
  7. Main run loop 실행 및 이벤트 큐를 이용해 이벤트 순차 처리
  8. 앱을 더이상 사용하지 않을 경우 iOS System에 terminate 메시지 전달, applicationWillTerminate(_:) 호출
  9. APP 종료

iOS APP 동작 과정

 

iOS APP 상태 변화

  1. Not Running : 실행되지 않았거나 시스템에 의해 종료된 상태
  2. Inactive : 실행 중이지만 이벤트를 받고있지 않은 상태 (EX : 앱 실행 중 알림 창이 화면을 덮어 앱이 실질적으로 이벤트를 받고 있지 못하는 상황)
  3. Active : 애플리케이션이 실질적으로 활동하고 있는 상태
  4. Background : 백그라운드 상태에서 실질적인 동작을 하고 있는 상태
  5. Suspended : 백그라운드 상태에서 활동을 멈춘 상태 (메모리가 부족할 때 시스템 강제 종료)

APP 상태 변화

 

AppDelegate 상태

AppDelegate란 말 그대로 앱과 시스템을 연결하기 위해 필요한 Delegate 메소드들을 담고 있습니다.

  1. application:willFinishLaunchingWithOptions: 어플리케이션이 최초 실행될 때 호출되는 메소드
  2. application:didFinishLaunchingWithOptions: 어플리케이션이 실행된 직후 사용자의 화면에 보여지기 직전에 호출
  3. applicationDidBecomeActive: 어플리케이션이 Active 상태로 전환된 직후 호출
  4. applicationWillResignActive: 어플리케이션이 Inactive 상태로 전환되기 직전에 호출
  5. applicationDidEnterBackground: 어플리케이션이 백그라운드 상태로 전환된 직후 호출
  6. applicationWillEnterForeground: 어플리케이션이 Active 상태가 되기 직전에, 화면에 보여지기 직전의 시점에 호출
  7. applicationWillTerminate: 어플리케이션이 종료되기 직전에 호출

Reference

 

[iOS] 앱의 생명주기(App Life Cycle)와 앱의 구조(App Structure) - jinShine

앱의 실행과정 main 함수가 실행 main 함수는 UIApplicationMain함수를 호출 UIApplicationMain함수는 앱의 본체에 해당하는 객체인 UIApplication 객체를 생성한다. nib파일을 사용하는 경우나, Info.plist 파일을

jinshine.github.io

 

[iOS] App LifeCycle

iOS 앱 생명주기 App Life Cycle App 의 생명주기란, App 을 터치하여 실행시킨 뒤 이것이 완전히 종료되기 까지 크게 3단꼐, 세밀하게 10단계로 진행이 된다. UIApplication 객체 생성 AppDelegate 객체 생성 Eve.

duwjdtn11.tistory.com

 

'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

댓글