UIKit Framework에서는 iOS와 tvOS를 위한 핵심 객체들을 제공해 준다. 이러한 객체들을 사용하여 스크린에 내용을 보여주고, 내용 간에 상호작용을 하며, 관리를 할 수 있게 된다. App은 기본적인 행위를 하기위해 UIKit에 의존하고 있는데, UIKit는 구현하고자 하는 기능을 위한 여러 방법들을 제공해준다.
Xcode에서 iOS(tvOS도 포함) 프로젝트를 생성하면 몇 가지 객체들이 자동으로 생성된다. 프로젝트를 실행하자마자 실행시켜도 아무 이상 없이 앱이 켜질 수 있는 이유는 여기에 있다.
Xcode에서 App 템플릿을 사용하여 만든 앱의 구조는 다음과 같다.
App을 빌드하기 시작하면, Xcode는 소스 파일들을 컴파일 하고 프로젝트를 위한 App Bundle을 생성한다. 앱 번들은 앱과 관련된 자원과 코드를 포함하고 있는 디렉토리이다. 여기서 말하는 자원은 image assets, storyboard files, string files, app metadata등등을 포함한다.
필수적인 여러가지 자원들 중 이 게시글에서는 UIKit App의 코드 구조를 살펴보려고 한다.
UIKit는 앱을 위한 핵심 객체들을 제공한다. 이 핵심 객체들은 앱에 화면을 띄우거나 main event loop를 실행하거나 system간 상요작용하는 객체들을 말한다. 아마 우리는 앱을 만들때에 최소한의 수정만을 가지고 해당 객체들을 사용하게 되 것이다. 각각의 객체가 언제 수정되고, 어떤 객체가 수정되는지 아는 것은 앱을 구현하는데 중요한 요소이다.
UIKit의 구조는 Model-View-Controller(MVC) 디자인 패턴을 따르고 있다. 그 객체 안에서는 그들의 목적에 따라 또 다시 나뉘게 된다.
앱의 데이터와 비즈니스 로직을 관리한다.
String
, numbers
, arrays
등 다른 데이터 타입을 정의하고 있다.model과 view객체 사이에 다리역할을 함으로써 적절한 타이밍에 데이터를 주고받는다.
데이터를 시각적으로 뿌려주는 방식을 제공한다.
참고
https://developer.apple.com/documentation/uikit/about_app_development_with_uikit