Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 30개프로젝트로배우는iOS앱개발withSwift초격자패키지Online
- 옵셔널 체이닝
- Optional Chaining
- 열거형
- RawValue
- 함수
- 직장인인강
- 프로퍼티 관찰자
- cancelAsyncWrite
- 기본문법
- 독학
- userDefaults
- Threading
- TableView
- 패스트캠퍼스후기
- 문자열 보간법
- Realm
- swift
- 직장인자기계발
- Background
- xcode
- switch
- SeSAC
- enum
- beginAsyncWrite
- 패캠챌린지
- Git
- 패스트캠퍼스
- 인스펙터
- ios
Archives
- Today
- Total
아삭아삭 iOS 개발
[iOS] 앱의 생명주기 (life cycle) 본문
앱 생명주기(life cycle)
- 앱의 실행부터 종료되기까지의 주기
- 시스템 알림에 응답하거나 여러 관련 이벤트들을 처리하는 단계
- 5가지 상태 존재 (Not Running / Inactive / Active / Background / Suspended)
- (UIWindowSceneDelegate 프로토콜을 채택하여) SceneDelegate에서 앱 생명주기 각 상태에 해당하는 메서드 구현
- (UIApplicationDelegate 프로토콜을 채택하여) AppDelegate에서 앱 생명주기 각 상태에 해당하는 메서드 구현
앱 생명주기의 역할
- iOS 환경에서 여러 앱을 실행할 경우, 현재 사용중인 앱 외 백그라운드로 간 다른 앱들도 모두 고려하여 사용성을 향상시키고 잘 관리할 수 있음
ex) 보안이 중요한 앱이 백그라운드로 갈 때 화면이 안보이도록 하거나, 다시 사용자에게 보여질 때 재로그인 요청하는 등의 처리
ex) A라는 앱을 사용하다가 B라는 앱을 사용할 때 A앱의 데이터를 저장해두는 처리
ex) 유튜브를 보는 중에 전화가 오면, 시청중이던 영상을 멈추고 볼륨이 감소함 등
앱 생명주기 관련 상태 5가지
- Not Running
: 앱이 실행되지 않은 상태 - Inactive
: 앱이 실행중인 상태 (단, 아무런 이벤트를 받고 있지는 않음)
ex) 앱상태 전환시 잠시 머물러가는 상태
ex) 게임앱을 사용하는 도중 푸시알람이 오거나 전화가 오는 등 방해요소로 인해 잠시 유저이벤트를 받을 수 없는 상태 - Active
: 앱이 실행중인 상태 (이벤트가 발생하여 받고 있음) - Background
: 앱이 백그라운드에 있는 상태 (실행되는 코드가 있음)
ex) 앱이 suspended 상태로 들어가기 전에 거쳐가는 상태 - Suspended
: 앱이 백그라운드에 있는 상태 (실행되는 코드가 없음)
background와 suspended 상태의 차이점?
- background에서는 앱이 실행될 수 있음
ex) 음악 앱으로 음악을 틀어두면, 메시지나 쿠팡 등 다른 앱을 실행해도 계속 음악이 실행됨
- suspended에서는 앱이 메모리상에 유지되지만, 메모리가 부족할 경우 시스템이 자동적으로 메모리상에서 앱을 제거해버림
- background에서 따로 실행해야 하는 기능이 있는게 아니라면 background를 거쳐서 suspended 상태로 들어옴
■ 참고자료
[1] https://developer.apple.com/documentation/uikit/uiapplicationdelegate
[2] https://sihyungyou.github.io/iOS-lifecycle/
[3] https://developer.apple.com/documentation/uikit/app_and_environment/managing_your_app_s_life_cycle