사용자는 하나의 앱만을 주구장창 사용하지는 않는다.
앱을 사용할 때도 있고, 사용하지 않을 때도 있음.
결국, 앱이 실행되고 종료되기까지 일련의 과정이라고 이해하면 될 것 같다.
앱의 상태는 크게 5가지로 분류한다.
[App State]
1. Not running state - 앱이 종료 혹은 실행되지 않은 상태
2. Inactive(Foreground) - 앱은 실행되었지만, 아무런 이벤트가 없는 상태
3. Active((Foreground) - 실행 중 + 이벤트 발생
4. Background - 사용자가 다른 앱으로 전환했거나, 종료한 경우. 일정 시간이 지난다면 Suspended로 전환된다.
5.Suspended - 백그라운드에서 작업이 없으면 Suspended 상태로 전환됨. 메모리가 부족하면 해당 상태의 앱은 메모리에서 없어짐.
앱이 foreground 상태로 들어가면 - initial UI를 준비, 사용자와의 interaction을 준비
foreground를 떠나면 - data 저장, 앱의 작업 minimizing
background를 들어갔을 때 - 앱 작업 중단, 메모리 cleaning, 현재 상태 저장 및 다음 작업 준비
[existing App Life Cycle, before iOS 13]
[App Life Cycle, after iOS13]