일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- xocde
- 준코딩
- 버블정렬
- BAEKJOON
- 연결리스트
- C언어
- 예외처리
- storyboard
- 플러터
- android java
- IOS
- 안드로이드스튜디오
- deeplink
- 백준
- label
- 보호와 보안
- swift baekjoon
- TextField
- 링크드리스트
- text to speech
- 커스텀팝업
- Android Studio
- Xcode
- Swift
- Firebase
- customPopup
- 안드로이드
- FLUTTER
- 자바
- Android
- Today
- Total
준코딩
IOS 생명주기 본문
생명주기란?
-> 앱의 최초 실행부터 앱이 완전히 종료되기 까지 앱이 가지는 상태와 그 상태들 사이의 전이를 뜻한다.
앱의 상태는 앱이 현재 어떠한 것을 할 수 있는지 결정한다.
앱의 상태 5가지.
1. NotRunning 상태
-> 앱이 실행되지 않았거나, 종료되어 동작하지 않는 상태
2. Foreground(Inactive) 상태
-> 앱이 실행은 되었지만, 사용자로부터 이벤트를 받을 수 없는 상태 (앱 실행중 전화, 알림 등에 의해 앱이 사용될 수 없는 상태)
3. Foreground(Active) 상태
-> 앱이 실행중이고, 사용자로부터 이벤트를 받아 상호작용할 수 있는 상태. Inactive 상태를 거쳐서 Active 상태가 된다.
4. Background(Running) 상태
-> 홈 화면으로 나가거나 다른 앱으로 전환되어 현재 앱이 실질적인 동작을 하지 않는 상태. 앱을 사용하지 않는 동안 서버와 데이터를 동기화하거나 타이머가 실행되어야 하는 등의 작업을 이 상태에서 진행한다.
5. Background(Suspended) 상태
-> 앱을 다시 실행했을 때 최근 작업을 빠르게 로드하기 위해서 메모리에 관련 데이터만 저장되어 있는 상태.
앱이 Background 상태에 진입했을 때, 아무런 작업을 하지 않으면 Suspended 상태로 진입한다.
Suspended 상태 앱들은 iOS메모리가 부족해지면 가장 먼저 메모리에서 해제된다. 해제되고나면 앱을 실행하게되면 다시 처음부터 실행된다.
IOS 생명주기는 iOS버전에 따라서 2가지로 나뉘고 있다.
지금은 iOS 13버전 이상에서의 생명주기를 다룰 예정.
iOS 13버전 이상 (2019년 이후)
-> Scene 기반 앱의 생명 주기 이벤트에 응답하기 위해 UISceneDelegate 객체 사용
앱 실행 할때
앱이 실행되고, 앱을 화면에 보여주기 위한 설정이 끝나고 호출.
1. application(_: didFinishLaunchingWithOptions:) 화면이 뜨기 직전에 호출됨.
앱이 실행되고 UIKit 에 Scene을 연결해야함, 새로운 Scene을 만들고 UIKit과 연결하기 위한 configuration 지정.
2. application(:configurationForConnecting: options: )
Scene이 연결될 것임을 delegate 에 알려줌.
3. scene(_:willConnectTo:options: )
앱이 inactivie에서 activity상태로 전환되었을 때 호출됨.
4. sceneDidBecomeActive(_: )
앱 백그라운드로 나갈때
앱 실행 후 홈 화면으로 나갈때 Active - Inactive - Background(Suspended)
1. sceneWillResignActive(_: )
앱이 Active에서 Inactive 상태로 전환될 떄
2. sceneDidEnterBackground(_:)
Background 상태에 있는 앱을 다시 실행할 때 Background - Inactive - Active
1. sceneWillEnterForeground(_:)
Background 에서 Inactive 상태로 전환될 떄
2. sceneDidBecomeActive(_:)
앱 종료될때
Scene 연결 해제
1. sceneDidDisconnected(_: )
delegate에 UIKite에 연결된 Scene의 연결 해제할 것을 요청함
2. applcation(_: didDiscardSceneSessions:)
사용자가 멀티태스킹 창에서 한개 이상의 Scene을 종료 시켰을 떄
3.applicationWillTerminate(_: )
'프로그래밍 > IOS (Swift)' 카테고리의 다른 글
[iOS/Swift] App Store Reject 사유 정리 (0) | 2023.03.30 |
---|---|
[iOS/Swift] TTS Text to Speech (0) | 2023.03.29 |
애플 개발자 계정 만들기 (0) | 2023.03.17 |
[iOS/Swift] 앱 종료 시키기 (0) | 2023.01.25 |
[iOS/Swift] KeyChain 이용하기 (0) | 2023.01.20 |