강신규
[iOS][Swift] App LifeCycle - 앱 생명주기 본문
앱 생명주기 란?
생명주기란 앱의 최초 실행에서 부터 앱이 완전히 종료되기 까지 앱이 가지는 상태와 그 상태 사이의 전이를 말합니다. 앱의 상태는 앱이 현재 어떠한 것을 할 수 있는지를 결정합니다.
앱의 상태 (App State)

1. Not Running ( 실행되지 않은 상태 )
앱이 실행하지 않은 상태 -> 이전에 실행되었던 앱이 종료된 상태를 말합니다
application(_:willFinishLaunchingWithOptions:)
application(_:didFinishLaunchingWithOptions:)
2. Inactive ( 비활성 ) -> Foreground
앱이 사용자 화면에 있지만 이벤트를 받지 못하는 상태를 말합니다. 주로 전화나 메세지 알림과 같은 이벤트로 인해 이 상태가 됩니다. 이 과정은 OS 가 결정합니다.
applicationWillResignActive(_:)
3. Active ( 활성 ) -> Foreground
앱이 사용자 화면에 있고 사용자와 상호작용이 가능한 상태를 의미합니다.
applicationDidBecomeActive(_:)
4. Background Running -> Background
앱이 백그라운드에서 코드를 실행하는 상태를 의미합니다. 주로 네트워크 작업 , 데이터 저장 등 사용자가 화면밖으로 나갔을때 코드가 실행되는 상태입니다.
applicationDidEnterBackground(_:)
5. Suspend (일지 정지)-> Background
앱이 백그라운드 상태에 있지만 코드 실행이 없는 상태를 의미합니다. 시스템은 필요에 따라 이 상태의 앱을 종료시킬 수 있습니다.
왜 사용해야할까 or 나만의 고민
5가지의 앱 상태를 이용하여 나의 앱이 어떤 상태일때 원하는 작업을 처리할 수 있습니다.
-> 사용자가 앱 화면밖으로 나갔을때 네트워크 작업이 필요할 것 같은데?? background 상태에서 처리하도록
이를 통해 더 나은 사용자 경험과 효율적인 리소스 관리가 가능합니다.
'iOS > Swift' 카테고리의 다른 글
[Swift] Key-Value Observing (KVO) 란 (0) | 2024.08.27 |
---|---|
[Swift] Key-Value Coding(KVC) 란 (0) | 2024.08.27 |
[Swift] Extensions (확장) 이란 (1) | 2024.04.12 |
[Swift] unrecognized selector sent to instance (0) | 2023.06.02 |
[Swift] Auto Layout 이란 (2) | 2023.05.17 |