iOS 앱에서, 시스템 자원은 한정적이기 때문에 앱의 상태가 foreground인지, background인지 아는 게 중요
-foreground : 사용자가 보고 있는 화면. 그렇기 때문에 CPU를 비롯한 시스템 자원의 우선순위가 높은 상황
-background : 앱이 홈 화면으로 들어가서 사용자한테 보이지 않는 상태. 하지만 여기서 중요한 것은 앱이 background 상태가 되어도 계속 실행해야 될 때가 존재한다. (Ex. 음악 어플)
애플에서는 앱을 실행할 때 다음의 가이드라인을 따르기를 요구
-앱의 상태 변화에 따라 적절하게 대응해야함. 그렇지 않다면 데이터 손실이나 사용자에게 좋지 않은 경험을 느끼게 할 수 있음
-앱의 상태가 background로 바뀔 때, 앱이 이에 대해 적절하게 대응해야 함.
-앱의 시스템 변경 사항을 보고하는 알람을 등록하는 것을 추천. 앱이 중지된다면 시스템 큐에 들어갔다가 다시 실행.
ㅇ앱 상태 종류

-Not running : 앱이 아예 실행되지 않았거나, 종료된 상태
-Inactive : 앱이 foreground 상태이기는 하나, 이벤트를 받지 못한 상태
-Active : 앱이 foreground에서 실행 중이며, 이벤트를 받았을 때의 상황
-Background : 앱이 background에 있으며 코드를 실행하고 있는 상태 (코드 실행 중)
-Suspended : 앱이 background에 있으며, 앱이 메모리에 남아 있긴 하나, 코드를 실행하고 있지 않은 상태

'iOS' 카테고리의 다른 글
| [iOS] 의존성 주입(Dependency Injection, DI)이 객체의 결합도를 낮춰주는 이유 (Feat. Car) (0) | 2023.03.08 |
|---|---|
| [iOS] MVVM 패턴이란? (2) | 2022.10.12 |
| [iOS] MVC 패턴이란? (0) | 2022.10.09 |