[iOS] 앱의 생명주기(App Life Cycle)와 앱의 구조(App Structure)
앱의 상태 변화
- Not runnig → Foreground (inactive → active) → Background → Suspended
- Not Running : 실행되지 않았거나, 시스템에 의해 종료된 상태
- Inactive : 실행 중이지만 이벤트를 받고있지 않은 상태. (예를 들어, 앱 실행 중 미리알림 또는 일정 얼럿이 화면에 덮여서 앱이 실질적으로 이벤트는 받지 못하는 상태 등을 뜻함.)
- Active : 어플리케이션이 실질적으로 활동하고 있는 상태.
- Background : 백그라운드 상태에서 실질적인 동작을 하고 있는 상태. 예를 들어 백그라운드에서 음악을 실행하거나, 걸어온 길을 트래킹 하는 등의 동작을 뜻함.
- Suspended : 백그라운드 상태에서 활동을 멈춘 상태. 빠른 재실행을 위하여 메모리에 적재된 상태지만 실질적으로 동작하고 있지는 않음. 메모리가 부족할때 비로소 시스템이 강제 종료하게 된다.
- 대부분의 상태 전환은 AppDelegate 객체의 메소드 호출을 거칩니다. AppDelegate 객체는 UIResponder, UIApplicationDelegate 를 상속 및 델리게이트 참조.
- UIApplicationDelegate 은 UIApplication 객체의 작업에 개발자가 접근할 수 있도록 하는 메소드들을 담고 있습니다.
앱을 전면으로 실행하기
앱을 background로 실행하기