강신규

[iOS][Swift] App LifeCycle - 앱 생명주기 본문

iOS/Swift

[iOS][Swift] App LifeCycle - 앱 생명주기

kangnew 2024. 5. 24. 17:48

 

앱 생명주기 란?

생명주기란 앱의 최초 실행에서 부터 앱이 완전히 종료되기 까지 앱이 가지는 상태와 그 상태 사이의 전이를 말합니다. 앱의 상태는 앱이 현재 어떠한 것을 할 수 있는지를 결정합니다.

 

 

앱의 상태 (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