꾸준한 기록

Application State 본문

iOS

Application State

Doo혀니 2024. 5. 1. 17:35

 

Scene based app 에서 UIApplication.State의 의미

  • 가장 active한 scene의 값을 사용한다.
  • 가장 active 하다는 것을 판단하는 기준? 각 scene의 activationState 프로퍼티
  • scene이 scene session과 connect되고, 다른 상태로 transition 되거나, disconnect될 때마다 상태가 바뀐다.

어떤 상황에서 Scene이 특정 상태가 되는가?

출처: https://developer.apple.com/documentation/uikit/app_and_environment/managing_your_app_s_life_cycle

Unattached

  • Scene이 생성된 직후 
  • 앱이 새롭게 실행될 때
    (이는 앱이 앱 스위처에 남아있는 상태에서 앱 인스턴스만 존재하지 않을 때, 앱을 다시 실행하는 경우도 포함된다.)
  • 시스템에서 시스템에서 리소스를 확보하기 위해 백그라운드 상태에 있는 앱을  
  • 유저가 앱 스위처에서 앱을 종료할 때 

Foreground Active

  • 앱이 실행중이고, 이벤트를 수신하고 있을 때 
  • 메인 이벤트 루프가 동작중 (UI 다시 그리거나, 터치 이벤트 처리를 수행하고 있음) 

Foreground Inactive

  • 앱이 실행중이지만, 이벤트를 수신하고 있지 않을 때
  • 앱이 유저에게 노출되지만, 유저와 상호작용할 수 없다. (유저와 상호작용하기 위해서는 Active 상태로 넘어가야 한다.)
  • ex) 앱이 백그라운드로 전환중일 때 or 전화 수신, SMS 수신, 알림, 시스템 프롬프트와 같은 이벤트로 인해 앱이 중단될 때 

Background

  • 유저에게 앱이 노출되지 않는 상태 

Suspended

  • 유저에게 앱이 노출되지 않으면서, 아무런 코드도 실행되지 않는 상태 (앱이 메모리에는 남아 있음)
  • 시스템이 종료할 수 있는 상태 
  • 백그라운드 패치, 위치 업데이트가 필요할 때 background 상태로 전환되어 앱이 실행된다.

 


 

SceneDelegate 메서드별 Scene의 상태 전환

scene(_:willConnectTo:options:) 호출 후 

unattched ➡️ foreground inactive

 

sceneDidDisconnect 호출후 

background / 앱이 종료중일 때   ➡️ unattached

 


💡'Scene'이 app하고 연결된다는 의미?

Scene Session하고 연결되는 것이다.

'iOS' 카테고리의 다른 글

iOS 시스템의 메모리 구조  (0) 2024.08.31
[WWDC24] Bring you app's core features to with App Intents 요약  (0) 2024.06.20
[SwiftUI] 기초 (App, Scene)  (2) 2023.11.27
FileSystem, FileManager  (1) 2023.10.25
[iOS] URL Loading System  (0) 2022.08.11