일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Svelte
- 호키스
- TDD
- 자료구조
- data structure
- 비동기
- 자스민
- 개발
- HTML
- Hitit
- 이종호
- 힛잇
- 스위프트
- jest
- 리액트
- javascript
- queue
- 스벨트
- 자바스크립트
- hokidoki
- react
- 계명대 이종호
- 계명대
- hokeys
- IOS
- 개발자
- 자바스크립트 자료구조
- 리액트 예제
- 호키도키
- SWIFT
- Today
- Total
Dog foot print
IOS LIFE CYCLE(생명 주기) 본문
서론 :
어쩌다 보니, 회사 일 때문에, IOS에 대한 공부를 시작하게 되었고 현재 계속 스위프트를 공부 중이다. 스위프트는 볼만 하지만, 스위프트를 이용한, 코코아 터치 프레임워크 및 코어 데이터를 사용하는 것이 완전 지옥이다.
IOS LIFE CYCLE
IOS 라이프 사이클은 다음과 같은 4개의 상태를 가지며 Fore ground 상태에서는 2개의 상태로 나뉜다.
Not Running : 프로세스가 KILL되어 있는 상태. 즉 앱이 종료된 상태를 말한다.
Fore ground : 현재 앱이 화면 전면 부에서 실행 되고 있는 상태. 즉 사용자가 현재 사용중인 어플리케이션. IOS에서는 1개의 어플리케이션만이 Fore ground 상태를 가질 수 있다.
- Inactive : 앱이 실행중이지만, 아무런 이벤트를 받지 않는 상태. 즉 전화, 알림 창 등등 사용자의 입력을 받을 수 없는 상태
- Active : 화면 전면 부에서 사용자와 상호작용 할 수 있는 상태.
Background : 현재 어플리케이션이 사용자와 상호작용을 하지 않는 상태. Fore ground에 있던 앱은 Background로 이동 하는 경우, 마지막 Task 를 기점으로 더 이상의 Task는 실행 하지 않는 상태. Suspended상태로 이전 하기 전 거쳐 가는 단계로 애플에서 허용하는 7개의 경우에 Background상태에서 작업을 수행 할 수 있다.
Suspended : 앱이 더 이상의 코드를 실행하지 않는 상태이며, 사용자의 빠른 앱 실행을 위해서 Application을 메모리에 유지 시킨다. 운영체제 판단 하에, 메모리의 공간이 부족한 경우 현재 Suspended 상태의 앱을 종료 시킬 수 있다 .
IOS Application Life Cycle
상태 변화 호출 함수
몇몇의 상태는 오버로드 되어 알아보기 힘들 수 있으니 매개변수명의 변화에 신경 쓰도록 합시다.
optional func application(_ application: UIApplication,
willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
App 실행을 위한 초기화가 완료되기 직전에 호출 .
Application 매개변수는 싱글 턴 객체이다.
launchOption 내부 매개변수 명은 앱이 시작된 이유를 가지고 있는 Dictionary 타입이다. 사용자가 앱을 직접 실행 시킨 경우, empty상태이다.
optional func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
앱을 실행 시킬 수 있는 상태이다.
Application 매개변수는 싱글 턴 객체이다.
launchOption 내부 매개변수 명은 앱이 시작된 이유를 가지고 있는 Dictionary 타입이다. 사용자가 앱을 직접 실행 시킨 경우, empty상태이다.
Not running 상태에서 Fore ground로 변화하는 시기 .
URL에서 자원을 가져와 관리 할 수 없는 경우나 사용자의 활동을 지속 할 수 없는 경우 false를 반환하며, 그렇지 않은 경우 true를 반환합니다. 만약remote notification으로 앱을 실행 시킨 경우 이 반환값은 무시됩니다.
optional func applicationDidBecomeActive(_ application: UIApplication)
앱이 foreGround상태로 전환 될 때 호출
optional func applicationWillResignActive(_ application: UIApplication)
앱이 inactive 상태로 전환 될 때 호출 된다.
SMS , 전화가 앱 사용 중에 도착하는 경우 해당 한다.
optional func applicationDidEnterBackground(_ application: UIApplication)
어플리케이션이 Background 로 전환 되었을 때 함수가 호출 된다.
optional func applicationWillEnterForeground(_ application: UIApplication)
어플리케이션이 Background 에서 Fore ground로 진입 할 때 함수가 호출 된다.
optional func applicationWillTerminate(_ application: UIApplication)
어플리케이션이 suspend 에서 not Running 으로 변경 될 때 실행된다. 즉 프로세스가 kill될 때 실행되는 함수다.
출처 :
velog.io/@delmasong/Managing-Your-Apps-Life-Cycle