GPT는 블로그 글도 써준다
iOS 앱 생명주기
JAKE5113
2024. 9. 12. 16:09
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는 각 화면의 상태 변화를 관리하며, 뷰가 로드되거나 사라질 때 호출되는 생명주기 메서드를 통해 화면별로 필요한 작업을 처리합니다.
반응형