반응형
App의 생명주기
App의 생명주기는 아래 5가지 상태를 가진다.
- Not Running : 실행되지 않은 상태
- In Active : 앱이 실행 중인 상태이지만 아무런 event를 받지 않은 상태
- Active : 앱이 실행중이며 event가 발생한 상태
- BackGround : 앱이 BackGround에 있는 상태이지만 실해오디는 코드가 있는 상태
- Suspended : 앱이 BackGround에 있고 실행되는 코드가 없는 상태
앱이 동작하는 과정을 나누어보면 아래 4가지 상태를 볼 수 있다.
- 앱을 시작할 때
- 앱을 비활성화 할 때
- 앱을 활성화 할 때
- 앱을 종료할 때

:(NSDictionary *)launchOptions => 어플리케이션이 처음 실행될 때. (처음 메모리상에 올라가게 될 때를 말함)
application didFinishLaunchingWithOptions(void)applicationDidBecomeActive:(UIApplication *)application => 어플리케이션이 활성화 될 때, 즉 didFinishLaunchingWithOption 호출 직후, 어플리케이션이 백그라운드로 돌아갔다가 다시 불러질 때 호출(void)applicationWillResignActive:(UIApplication *)application => 어플리케이션이 백그라운드로 들어가기 직전(홈버튼을 누른 직후)에 호출 됨(void)applicationDidEnterBackground: 어플리케이션이 백그라운드로 완전히 들어갔을 때 호출됨(void)applicationWillEnterForeground:(UIApplication *)application => 어플리케이션이 다시 활성되기 직전에 호출됨 (백그라운드 상에서 다시 어플리케이션이 활성되면 willEnterForeground 호출 후 applicationDidBecomeActive 호출)(void)applicationWillTerminate:(UIApplication *)application => 어플리케이션이 완전히 종료되기 직전에 호출 됨
꼭 다시 볼것
https://woozzang.tistory.com/78
앱의 실행과정

- App Touch
- main() 안에서
UIApplicationMain()호출,UIApplication객체 생성 UIApplication객체는info.plist파일으로부터 앱에 필요한 데이터와 객체들을 로드- 커스텀 코드를 처리하기 위한
AppDelegate를 생성하고 이를UIApplication객체와 연결 - 실행을 준비하고
application(_:willFinishLaunchingWithOptions:)호출 - 준비가 끝나고 앱 실행 직전에
application(_:didFinishLaunchingWithOptions:)호출 Main run loop실행, 이벤트 큐를 이용해 이벤트 순차 처리,- 앱을 더이상 사용하지 않으면
iOS System에terminate메시지 전달applicationWillTerminate(_:)호출 - App종료
Swift는 C 계열의 언어가 아니기 때문에 main()과 같은 시작점을 갖지 않는다.
따라서, @UIApplicationMain 이라는 어노테이션을 통해 UIApplication 객체 생성 과정을 대신한다.
모든 iOS 앱들은 UIApplication 함수를 실행한다.
이 때 생성되는 것 중 하나가 UIApplication 객체이며 이는 Singleton 형태로 생성되어, UIApplication.shared 형태로 앱 전역에서 사용이 가능하다.
반응형
'개발(Development) > iOS' 카테고리의 다른 글
| View의 계층구조 (0) | 2022.03.14 |
|---|---|
| 앱의 다크모드를 바꾸는 여러가지 방법 (0) | 2022.03.09 |
| 노치 부분까지 레이아웃 설정하는 방법 (0) | 2022.02.24 |
| JSON이란 (0) | 2022.02.23 |
| Progress Bar(2) (0) | 2022.02.17 |
| Progress Bar (0) | 2022.02.16 |
| xib의 이름으로 화면전환하기 (present) (0) | 2022.02.14 |
| 링크에 한글이 있는 경우 (0) | 2022.01.13 |