iOS) App의 생명 주기

JeongYeongJoon·2023년 6월 3일

iOS_Interview

목록 보기
3/15
post-thumbnail

App의 생명 주기는 아래 그림과 같다.
점선은 System의 동작, 실선은 User의 동작이다.

1. Not Running

아무것도 실행하지 않은 상태이다. 또는 실행중이지만 시스템에 의해 종료된 상태이다.

2. InActive

앱이 포어그라운드 상태로 돌아가지만, 이벤트는 받지 않는 상태이다. 앱의 상태 전환 과정에서 잠깐 머무는 단계이다.

  • 처음 앱을 실행하고 LaunchScreen에 잠시 머물러 있을 때
  • Background에서 스와이프해서 다시 Foreground로 들어올 때
  • Launch screen은 코드를 가질 수 없다.

3. Active

일반적으로 앱이 실행중인 상태이다.
이벤트를 받는 단계이다.

4. Background

앱이 Suspended(유예 상태) 상태로 진입하기 전 거치는 단계이다.

  • Background 일때 작업하는 경우가 많다.
  • 음악이나 통화와 같이 계속 앱이 실행되는 경우에는 Background일 때 동작을 한다.
  • 보통의 앱은 Background 단계는 스쳐지나가서 바로 Suspended가 된다.
  • Background로 들어가면 앱이 종료되었다고 봐야 한다.

5. Suspended

앱이 Background 상태에 있지만, 아무 코드도 실행하지 않는 상태이다. 시스템이 임의로 Background 상태의 앱을 Suspended 상태로 만든다. 리소스가 해제된다.

  • Suspended가 되면 Not Running과 같다고 봐야 한다.

Background에서 다시 InActive로 가는 경우를 권장한다. 즉, 앱의 데이터가 저장되어 있으면 그 화면을 보여주게 한다. 그러나 은행앱은 보안을 위해 바로 종료되어 처음부터 로그인하도록 동작한다.

참고사이트

iOS. App Life Cycle

profile
iOS와 Swift, SwiftUI를 공부하기 위해 블로그를 운영 중입니다.

0개의 댓글