앱의 생명주기는 사용자와의 상호작용, 시스템 이벤트 및 앱의 내부 상태 변화에 따라 앱이 경험하는 다양한 상태를 나타냅니다. 이 글에서는 iOS 앱의 주요 라이프사이클 상태와 관련 UIApplicationDelegate 메서드에 대해 살펴보겠습니다.
1. Not Running (실행되지 않음)
- 상태 설명: 앱이 시작되지 않았거나, 이전에 실행되었던 앱이 종료된 상태.
- 관련 메서드:
application(_:willFinishLaunchingWithOptions:)
application(_:didFinishLaunchingWithOptions:)
2. Inactive (비활성)
- 상태 설명:
앱이 전경에 있지만 이벤트를 받지 못하는 상태. 전화나 메시지 알림과 같은
이벤트로 인해 잠시 이 상태가 될 수 있습니다.
- 관련 메서드:
applicationWillResignActive(_:)
3. Active (활성)
- 상태 설명: 앱이 전경에 있고 사용자와 상호작용하고 있는 상태.
- 관련 메서드:
applicationDidBecomeActive(_:)
4. Background (백그라운드)
- 상태 설명: 앱이 백그라운드에서 코드를 실행하는 상태. 데이터 저장, 네트워크 작업 등이 가능합니다.
- 관련 메서드:
applicationDidEnterBackground(_:)
5. Suspended (일시 중지)
- 상태 설명: 앱이 백그라운드에 있지만 코드 실행이 없는 상태. 시스템은 필요에 따라 이 상태의 앱을 종료시킬 수 있습니다.
- 관련 메서드: 호출되는 메서드 없음.
6. Termination (종료)
- 상태 설명: 앱이 종료되는 상태.
- 관련 메서드:
applicationWillTerminate(_:)
각 상태변화에 따른 UIApplicationDelegate 메서드를 통해 앱의 행동을 적절하게 조절하면 더 나은 사용자 경험과 효율적인 리소스 관리가 가능합니다.