Archive/Doit 아이폰 앱(입문)

iOS 앱의 구조와 프레임워크

lgvv 2021. 3. 1. 18:00

우리가 건들일 수 있는 프레임워크와  건드릴 수 없는 영역으로 나뉜다.

 

앱의 기본 구조

 - 엔트로 포인트 (main)

  AppDelegate 클래스를 이용하여 UIApplicationMain()을 호출하고 UIApplication 객체를 반환

UIApplication 객체는 UIKit 프레임워크에 속해 있으므로 이후의 앱 제어권은 UIKit 프레임워크로 이관.

 

UIApplicationMain의 역할은? 

 이벤트 루프나 다른 높은 수준의 앱 동작을 관리할 뿐만 아니라 푸시 알림과 같은 특후한 이벤트를 우리가 정의한 커스템 객체인 델리게이트에게 알려주기도 한다.

 

AppDelegate를 이용하여 UIApplication의 일부 권한을 위임하여 커스텀 코드와 상호작용하는 역할을 담당하고 이를 통해 우리가 필요한 코드를 구현할 수 있도록 돕는다. 

AppDelegate의 생명주기는 앱의 생명주기와 함께한다.

 

정리 

1. main()함수 실행

2. main()함수는 다시 UIApplicationMain() 호출

3. UIApplicationMain() 함수는 앱의 본체에 해당하는 UIApplication 객체 생성

4. UIApplication 객체는 Info.plist 파일을 바탕으로 앱에 필요한 데이터와 객체를 로드한다.

5. AppDelegate 객체를 생성하고 UIApplication 객체와 연결한다.

6. 이벤트 루프를 만드는 등 실행에 필요한 준비를 진행한다.

7. 실행 완료 직전, 앱 델리게이트의 application(_:didFinishLaunchingWithOptions:) 메소드를 호출한다.

 ++ 팁 7번 메소드에 커스텀 코드를 작성해 두면 앱이 처음 시작될 때 해당 코드를 실행할 수 있다! 

(ex, 앱 푸시 화면 선택)

이후에 이벤트 루프를 통해 이벤트 핸들되면서 우리 코드가 실행된다.

 

 

 

번들 프로그램이란? (a.k.a 번들 애플리케이션)

 - 사파리 브라우저, 계산기, 카메라, 주소록, 메시지 등 따로 설치하지 않아도 OS와 함께 포함된 것들

 

인앱 프레임워크(In-App Framework)란?

 - 번들 프로그램을 앱 내부에서 사용하여 기능을 손쉽게 확장할 수 있도록 제공하는 별도의 프레임워크

 

인앱 프레임워크의 종류

 - 주소록 

 - 이벤트 및 일정 관련

 - 메시지

 - 광고 관련

 - 게임 킷

 - 지도 관련

'Archive > Doit 아이폰 앱(입문)' 카테고리의 다른 글

PickerView - 코드리뷰  (0) 2021.03.02
DatePicker - 코드리뷰 (타이머)  (0) 2021.03.02
ImageView - 코드리뷰  (0) 2021.03.02
오토 레이아웃  (0) 2021.03.01
개념 카테고리 규칙  (0) 2021.03.01