앱 라이프사이클

May 10 2023
: 앱 시작부터 종료까지 주기 : 메모리나 데이터 관리로 사용성 ⬆️ 보안 처리 가능 UIApplication, AppDelegate 상황 : AppDelegate 객체가 UIApplication 객체에서 보낸 메시지를 받아 각각 실행하는 기능 정의 Not Running : 앱이 실행되고 있지 않은 상태Inactive : 앱이 실행되고 있지만 이벤트가 수신되지 않은 상태활성: 앱이 실행 중이고 이벤트가 발생한 상태백그라운드: 앱이 백그라운드에 있지만 코드가 실행 중인 상태서스펜드: 앱이 실행 중인 상태 AppDelegate.swift 파일 SceneDelegate에서 델리게이트 기능이 될 코드를 백그라운드에서 실행하지 않고 실행 iOS 13 이상부터 지원하는 다중 씬 기능에 잘 대응하기 위해 AppDelegate / SceneDelegate AppDelegate 1.

: 앱 실행에서 종료까지 주기
: 메모리나 데이터 관리를 통한 사용성 ⬆️ 보안처리 가능

UIApplication, AppDelegate

상황: AppDelegate 객체가 UIApplication 객체에서 보낸 메시지를 수신하고 각각을 실행하는 기능을 정의합니다.

Not Running: 앱이 실행되고 있지 않은 상태
Inactive: 앱이 실행되고 있으나 이벤트가 수신되지 않은 상태
Active: 앱이 실행 중이고 이벤트가 발생한 상태
Background: 앱이 백그라운드에 있지만, 이벤트가 발생하지 않는 상태 실행 중인 코드
Suspended: 앱이 백그라운드에 있고 실행 중인 코드가 없는 상태

AppDelegate.swift 파일의 델리게이트 함수

application(_:didFinishLaunching:) Run when the app first starts
applicationWillResignActive: - Executed when the app is moved from active to inactive
applicationDidEnterBackground: - Run when the app is in the background
applicationWillEnterForeground: - Executes when the app is moved from the background to the foreground (not yet running in the foreground)
applicationDidBecomeActive: - When the app is active and running
applicationWillTerminate: - Run when app closes

SceneDelegate

iOS 13 이상부터 지원되는 다중 장면 기능에 잘 대응하기 위해

AppDelegate / SceneDelegate

AppDelegate

1. func application(_:didFinishLaunchingWithOptions: ) -> Bool

이 방법으로 애플리케이션 설정이 진행됩니다.

2. func application(_:configurationForConnecting:options: ) -> UISceneConfiguration

이 메서드는 응용 프로그램이 새 장면/창을 제공하려고 할 때 호출됩니다.

3. func application(_:didDiscardSceneSessions: )

사용자가 장면을 떠날 때 호출됩니다.

SceneDelegate

1. scene(_: willConnectTo: 옵션: )

이것은 UISceneSession 수명 주기에서 호출되는 첫 번째 메서드입니다. 첫 번째 콘텐츠 보기인 새 UIWindow를 만들고 창의 rootViewController를 설정합니다.
(창: 앱이 작동하는 뷰포트)

2. sceneWillEnterForeground(_ :)

장면이 전경으로 전환될 때 호출됩니다.
1) 배경 → 전경일 때
2) 처음 활성화 될 때

3. sceneDidBecomeActive(_ :)

비활성 → 활성 전환 시 호출됩니다.

4. sceneWillResignActive(_ :)

활성 → 비활성 전환 시 호출됩니다.
ex) 앱 전환기 상황

5. sceneDidEnterBackground(_ :)

장면이 전경에서 배경으로 전환될 때 호출됩니다.
다음에 포그라운드로 복귀할 때 복원할 수 있도록 상태 정보를 저장하거나 데이터를 저장하거나 공유 리소스를 반환합니다.

6. sceneDidDisconnect(_ :)

장면이 배경으로 들어가면 시스템이 리소스를 확보하기 위해 연결을 끊을 가능성이 있습니다.
(disconnect :session is disconnected / 앱이 종료된다는 의미는 아님 )

ViewController 라이프사이클