iOS 앱 생명주기
2024. 9. 12. 16:09ㆍGPT는 블로그 글도 써준다
iOS 앱의 생명주기(Lifecycle)는 앱이 실행되는 동안 발생하는 다양한 상태 전환을 관리하는 과정입니다. iOS에서는 앱이 실행되거나 종료되는 순간뿐만 아니라 백그라운드에서 실행 중일 때나 일시 정지 상태에서도 다양한 생명주기 메서드가 호출됩니다.
iOS 앱 생명주기의 주요 상태
- Not Running: 앱이 실행되지 않았거나, 시스템에서 종료된 상태.
- Inactive: 앱이 포그라운드에 있지만, 이벤트를 처리하지 않는 상태. 예를 들어, 전화가 왔을 때.
- Active: 앱이 포그라운드에서 실행 중이며, 이벤트를 처리하는 상태.
- Background: 앱이 백그라운드에서 실행 중인 상태.
- Suspended: 앱이 백그라운드에서 멈춰 있는 상태로, 메모리 부족 시 시스템에 의해 종료될 수 있음.
앱 생명주기 메서드 (AppDelegate)
iOS 앱의 상태 변화에 따라 AppDelegate 클래스에서 제공하는 다양한 생명주기 메서드가 호출됩니다. 각 메서드는 앱의 상태 변화에 맞춰 실행됩니다.
application(_:didFinishLaunchingWithOptions:)
- 앱이 처음 실행될 때 호출됩니다.
- 앱이 실행된 후 설정, 초기화 작업을 여기서 처리할 수 있습니다.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // 앱이 실행되었을 때 초기 설정을 여기서 처리 return true }
applicationDidBecomeActive(_:)
- 앱이 활성화(Active) 상태에 들어갈 때 호출됩니다.
- 앱이 포그라운드에 들어오고, 사용자와 상호작용이 가능해진 시점입니다.
func applicationDidBecomeActive(_ application: UIApplication) { // 앱이 활성화되었을 때의 처리 }
applicationWillResignActive(_:)
- 앱이 비활성화(Inactive) 상태로 전환될 때 호출됩니다.
- 예를 들어, 전화가 오거나, 홈 버튼을 눌러 앱을 최소화할 때 호출됩니다.
func applicationWillResignActive(_ application: UIApplication) { // 앱이 비활성화될 때 처리 }
applicationDidEnterBackground(_:)
- 앱이 백그라운드(Background) 상태로 진입할 때 호출됩니다.
- 데이터를 저장하거나, 작업을 정리할 수 있습니다.
func applicationDidEnterBackground(_ application: UIApplication) { // 백그라운드로 전환될 때 처리 }
applicationWillEnterForeground(_:)
- 앱이 백그라운드에서 포그라운드(Foreground)로 돌아올 때 호출됩니다.
- 앱이 다시 활성화되기 전에 필요한 준비 작업을 할 수 있습니다.
func applicationWillEnterForeground(_ application: UIApplication) { // 포그라운드로 돌아오기 전에 처리 }
applicationWillTerminate(_:)
- 앱이 종료되기 직전에 호출됩니다.
- 앱이 메모리 부족 또는 사용자의 명령에 의해 종료될 때 마지막으로 호출됩니다.
func applicationWillTerminate(_ application: UIApplication) { // 앱이 종료되기 직전에 필요한 작업 처리 }
ViewController 생명주기
ViewController의 생명주기는 각 뷰의 상태 변화에 따라 발생합니다.
viewDidLoad()
- 뷰가 처음 로드될 때 호출됩니다.
- 뷰 초기화 작업을 처리합니다.
viewWillAppear(_:)
- 뷰가 화면에 나타나기 직전에 호출됩니다.
- 매번 화면에 나타나기 직전에 호출되므로, 화면을 업데이트해야 할 작업이 있을 때 사용됩니다.
viewDidAppear(_:)
- 뷰가 화면에 나타난 후 호출됩니다.
- 애니메이션 작업이나 화면이 완전히 보인 후 실행해야 하는 작업에 사용됩니다.
viewWillDisappear(_:)
- 뷰가 화면에서 사라지기 직전에 호출됩니다.
viewDidDisappear(_:)
- 뷰가 화면에서 사라진 후 호출됩니다.
iOS 생명주기 요약
- AppDelegate는 앱 전체의 상태 변화를 관리하며, 앱의 시작부터 종료까지의 주요 이벤트를 처리합니다.
- ViewController는 각 화면의 상태 변화를 관리하며, 뷰가 로드되거나 사라질 때 호출되는 생명주기 메서드를 통해 화면별로 필요한 작업을 처리합니다.
반응형
'GPT는 블로그 글도 써준다' 카테고리의 다른 글
Moya에서 Query Parameters와 Encoding 처리 방법 (0) | 2024.12.06 |
---|---|
Swift에서 JSON 디코딩 오류와 해결 방법 (0) | 2024.12.06 |
iOS 뷰 전환 (0) | 2024.09.12 |
iOS 웹뷰 내에서 이동하지 않게 (0) | 2024.09.10 |
iOS 웹앱 브릿지 통신 (2) | 2024.09.10 |