Closed Glsme closed 1 year ago
앱의 실행 / 종료 및 Foreground / Background의 상태에 있을 때, 시스템이 발생시키는 event로 인해 App의 상태가 전환되는 일련의 과정
→ UIKit이 main 함수를 다루는 과정에서 → UIApplicationMain 함수를 실행 → 이를 통해 UIApplication 객체 생성 → @UIApplicationMain 또는 @Main 어노테이션이 있는 클래스를 찾아 AppDelegate 객체 생성 → Main Event Loop 실행 (touch, text input 등 사용자 액션)
유저가 일으키는 이벤트들을 처리하는 프로세스 View와 관련된 이벤트나 View의 업데이트에 활용하기에 Main thread에서 실행
사이클 | 설명 |
---|---|
Not Running | 앱이 아직 실행되지 않았거나, 완전히 종료되어 동작하지 않는 상태 |
Inactive | 앱이 실행중이지만 사용자로부터 event를 받을 수 없는 상태 |
Active | 앱이 실행중이고, 사용자 event를 받아서 상호작용 할 수 있느 상태 |
Background | 화면애 앱이 보지인 않지만 코드가 실행되고 있는 상태 |
Suspended | 앱을 다시 실행했을 때 최근 작업을 빠르게 로드하기 위해 메모리에 관련 데이터만 저장되어있는 상태 |
UIApplicationDelegate
객체가 앱의 생명주기 이벤트에 반응
iOS 12까지는 앱이 씬을 지원하지 않음. UIKit이 모든 생명주기 이벤트를 UIApplicationDelegate
객체에 전달. 앱델리게이트는 화면에 보여지는 별개의 스크린까지 포함하여 모든 앱의 윈도우를 관리. 그 결과로 앱의 상태 변화는 앱의 전체적인 UI에 영향을 끼침.
UISceneDelegate
객체가 씬 기반 앱의 생명주기 이벤트에 반응
앱이 씬을 지원할 경우 UIKit이 별개의 생명주기 이벤트를 전달.
UIApplicationDelegate
객체를 사용하여 앱 실행에 반응해야한다.
🗓️ 마감일
2023.01.15
💁 참여자
⚠️ 마지막으로 답변 단 사람이 이슈 close 하고 리드미에 항목 업데이트 해주세요.