728x90
반응형
iOS 앱을 개발하기 전에, 먼저 swift로 개발하는 iOS 앱이 어떤 방식으로 작동하는지 알아보았다.
📌 iOS 앱의 구성
먼저 iOS Application은 Custom Code와 System Framework로 구성되어 있다.
커스텀 코드는 사용자가 원하는 기능과 UI를 구현하는 부분이고,
시스템 프레임워크는 사용자가 편집할 수 없는, 시스템이 작동하는 기반 환경을 제공하는 부분이다.
📌 iOS 앱의 동작 원리
swift에서 run을 시켰을 때 앱이 동작하는 방식은 다음과 같다.
UIApplicationMain
UIApplicationMain은 어플리케이션 객체와 이에 대한 델리게이트를 생성하고, 이벤트 사이클을 만드는 함수이다.
이 함수는 시스템 프레임워크와 커스텀 코드를 엮어 앱 객체를 생성하는 프로세스 핸들링을 하고, UI와 기능을 읽어 구현하고, 이벤트 루프를 실행하기 때문에 앱 그 자체로 볼 수 있다.
스위프트에서는 이 함수가 메인 함수에 해당한다.
AppDelegate.swift
AppDelgate 는 UIApplication의 권한을 위임받아 커스텀 코드와 상호작용하여 코드를 실제 뷰와 컨트롤러로 보여지게 하고, 동작하게 한다. 앱이 실행되는 동안 유지되며, 앱이 종료되면 소멸하고, 단 한 개의 인스턴스만 생성한다.
- @main 어노테이션이 표시된 클래스(AppDelegate에 있음)가 델리게이트로 지정되어 실행된다.
- application(_:didFinishLaunchingWithOptions:) 메소드가 호출된다. : 앱이 실행되는 시점에 처리해야 할 내용을 여기에 작성하면 된다.
- 이벤트 루프 실행: 작성된 커스텀 코드들이 실행된다.
- 앱이 종료될 때, 앱에 대한 메모리 제거를 위해 applicationWillTerminate(_:) 메소드를 호출한다. : 앱이 종료되는 시점에 처리해야 할 내용을 여기에 작성하면 된다.
https://2unbini.github.io/📂%20all/swift/UIKit-2/
728x90
반응형