본문 바로가기
iOS

앱 생명주기(App Life Cycle)

by 행운의나무 2018. 4. 7.
728x90
반응형

swift로 앱을 만들기에 앞서 기본적인 앱의 생명주기(Life Cycle)에 대해 정리해보려 합니다. 

해당 내용은 애플개발자페이지medium블로그를 참고하였습니다.


앱 생명주기(App Life Cycle)

앱의 생명주기란 앱이 시작하면서 종료될 때 까지 일련의 동작들로 보면 될 것 같습니다.

앱은 크게 화면상에 앱이 실행되는 경우(foreground)와 화면상에는 보이지 않지만 실행되고 있는경우(background)로 나뉠 수 있습니다.


일단 아이콘을 눌러 앱이 실행되면,

  1. UIApplicationObject를 생성합니다. 
    -UIApplicationObject란 Event Loop에서 발생하는 여러 이벤트들을 감지하고, Delegate에 전달하는 역할을 합니다.

  2. @UIApplicationMain 어노테이션이 있는 클래스를 찾아 AppDelgate객체를 생성합니다.
    Xcode에서 프로젝트를 만들면 나오는 AppDelegate.swift파일에 @UIApplicationMain이 있습니다.
    AppDelegate객체(AppDelegate.swift가 AppDelegate객체 역할을 함)는 UIApplication객체로부터 메시지를 받았을때 해당 상황에서 호출될 함수들을 정의합니다.
    AppDelegate.swift에는 앱의 상태에 따라 호출되는 함수들이 정의 되어 있습니다.



    AppDelegate.swift에 정의 된 함수 

     설명

    application(_didFinishLauncingWithOptions)

    앱이 실행될때 호출

    applicationWillResignActive()

     앱이 active에서 inactive로 이동될때 호출 

    applicationDidEnterBackground()

     앱이 background상태일때 호출

    applicationWillEnterForeground()

     앱이 background에서 foreground로 이동될때 호출

    applicationWillTerminate()

     앱이 종료될때 호출 


  3. Main Event Loop(touch,gesture, input 등) 실행합니다.

위와 같은 순서로 동작합니다. 앱의 생명주기는 앱의 동작상태의 변화이며 앱의 동작상태는 다음과 같이 정의 되어집니다.

Not Running : 앱이 실행되지 않은 상태 또는 시스템에 의해 종료되지 않은 상태

Inactive : 앱이 실행 중이지만, 이벤트를 받지 않은 상태

Active : 앱이 실행중이며 이벤트가 발생한 상태(보통언급하는 foreground)  ※Active와 Inactive상태를 foreground라 함

Background : 앱이 background에 있으나 실행코드가 있는 상태

Suspended : 앱이 background상태에 있고, 실행되는 코드가 없는 상태




반응형

'iOS' 카테고리의 다른 글

탭바(TabBar) 이용하기  (0) 2018.04.17
색 지정 방법  (0) 2018.04.16
맵뷰(MapView)- 핀(어노테이션) 띄우기  (0) 2018.04.14
맵뷰(MapView)이용하기  (0) 2018.04.14
PickerView이용하기  (0) 2018.04.12