swift로 앱을 만들기에 앞서 기본적인 앱의 생명주기(Life Cycle)에 대해 정리해보려 합니다.
해당 내용은 애플개발자페이지와 medium블로그를 참고하였습니다.
앱 생명주기(App Life Cycle)
앱의 생명주기란 앱이 시작하면서 종료될 때 까지 일련의 동작들로 보면 될 것 같습니다.
앱은 크게 화면상에 앱이 실행되는 경우(foreground)와 화면상에는 보이지 않지만 실행되고 있는경우(background)로 나뉠 수 있습니다.
일단 아이콘을 눌러 앱이 실행되면,
- UIApplicationObject를 생성합니다.
-UIApplicationObject란 Event Loop에서 발생하는 여러 이벤트들을 감지하고, Delegate에 전달하는 역할을 합니다. @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()
앱이 종료될때 호출
- 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 |