UIKit으로 앱 개발
iOS/tvOS 앱 개발을 위해 UIKit과 Xcode가 제공하는 기본기능에 대해서 알아보세요
Last updated
iOS/tvOS 앱 개발을 위해 UIKit과 Xcode가 제공하는 기본기능에 대해서 알아보세요
Last updated
원문 출처 https://developer.apple.com/documentation/uikit/about_app_development_with_uikit
UIKit 프레임워크는 iOS 및 TVOS용 앱을 만드는 데 필요한 핵심 객체를 제공합니다. 이러한 객체를 사용하여 콘텐츠를 화면에 표시하고, 콘텐츠와 상호 작용하며, 시스템과의 상호 작용을 관리할 수 있습니다. 앱은 기본 동작을 UIKit에 의존하며 UIKit은 특정 요구에 맞게 동작을 커스터마이즈 할 수 있는 다양한 방법을 제공합니다.
중요
iOS나 tvOS의 개발은 Xcode에서 프로젝트를 만드는 것에서부터 시작됩니다. Xcode가 없는 경우 App Store 또는 developer.apple.com 에서 최신 버전을 다운로드할 수 있습니다.
Xcode는 생성하는 모든 앱의 시작점으로 템플릿 프로젝트를 제공합니다. 예를 들어 그림 1은 Xcode에서 싱글 뷰 앱 템플릿을 사용하여 만든 앱의 구조를 보여줍니다. 템플릿 프로젝트는 최소 사용자 인터페이스를 제공하기 때문에 프로젝트를 즉시 빌드하고 기기나 시뮬레이터에서 실행해 볼 수도 있습니다.
앱을 만들 때 Xcode는 원본 파일을 컴파일하고 프로젝트에 사용할 앱 번들을 만듭니다. 앱 번들은 앱과 관련된 코드와 리소스를 포함하는 구조화된 디렉토리입니다. 리소스에는 코드를 지원하는 이미지 Asset, 스토리보드 파일, 문자열 파일 및 애플리케이션 메타데이터가 포함됩니다. 앱 번들의 구조는 중요하지만, Xcode는 여러분의 리소스가 어디로 가야 하는지 알고 있으니, 당분간은 걱정하지 마세요.
모든 UIKit 앱은 다음 리소스를 필수적으로 요구합니다:
앱 아이콘
Launch 스크린 스토리보드
시스템은 홈 스크린, 설정 및 다른 앱과 구분하는데 필요한 모든 위치에 앱 아이콘을 표시합니다. 앱 아이콘은 여러 위치와 기기에서 사용되므로 그림 2와 같이 Xcode 프로젝트의 AppIcon 이미지 asset에 앱 아이콘의 여러 버전을 제공할 수 있습니다. 앱 아이콘은 사용자가 홈 화면에서 앱을 빠르게 식별할 수 있도록 독특해야 하며 이미지 크기별로 아이콘 세부사항을 다르게 적용할 수도 있습니다.
LaunchScreen.storyboard 파일에는 앱의 초기 사용자 인터페이스가 포함되어 있으며 스플래시 화면이나 실제 인터페이스의 단순화 된 버전이 될 수 있습니다. 사용자가 앱의 아이콘을 탭하면 시작 화면이 즉시 표시되어 사용자에게 앱이 시작되고 있음을 알립니다. 시작 화면은 앱을 초기화하는 동안 앱에 대한 표지도 제공합니다. 앱이 준비되면 시스템이 시작 화면을 숨기고 앱의 실제 인터페이스를 표시합니다.
시스템은 앱 번들의 정보 속성 목록 (Info.plist) 파일에서 앱의 구성과 기능에 대한 정보를 가져옵니다. Xcode는 모든 새 프로젝트 템플릿에 이 파일의 미리 구성된 버전을 제공하지만 어느 시점에 이 파일을 수정해야 할 수도 있습니다. 예를 들어 앱이 특정 하드웨어를 사용하거나 특정 시스템 프레임워크를 사용하는 경우 해당 기능과 관련된 정보를 이 파일에 추가해야 할수 있습니다.
Info.plist 파일을 수정하면 앱의 하드웨어 및 소프트웨어 요구사항을 선언할 수 있습니다. 이러한 요구사항은 앱이 실행될 시스템과 통신하는 방법입니다. 예를 들어, 네비게이션 앱은 GPS 하드웨어가 있어야 그림을 볼 수 있습니다 (그림 3 참조). 앱 스토어는 앱 요구 사항에 맞지 않는 기기에 앱이 설치되는 것을 방지합니다.
Info.plist 파일에 포함할 수 있는 키에 대한 정보는 Information Property List Key Reference를 참조하십시오.
UIKit은 앱의 핵심 객체를 제공하는 것 외에도 시스템과의 상호작용하고 앱의 메인 이벤트 루프를 실행하며 화면에 콘텐츠를 표시하는 기능을 수행합니다. 이러한 객체의 대부분은 그대로 사용되거나 약간의 수정을 거칩니다. 수정할 객체와 수정할 시기를 아는 것은 앱을 구현하는 데 중요합니다.
UIKit 어플리케이션의 구조는 객체가 목적에 따라 구분되는 MVC (Model-View-Controller) 디자인 패턴을 기반으로 합니다. 모델 객체는 앱의 데이터 및 비즈니스 로직을 관리합니다. 뷰 객체는 데이터의 시각적 표현을 제공합니다. 컨트롤러 객체는 모델과 뷰 객체 사이의 다리 역할을 하며 적절한 타이밍에 데이터를 이동시킵니다.
그림 4는 UIKit 앱의 일반적인 구조를 나타냅니다. 앱의 데이터 구조를 나타내는 모델 객체가 제공되고 있습니다. UIKit은 대부분의 뷰 객체를 제공하지만 필요에 따라 데이터에 대한 커스텀 뷰를 만들수도 있습니다. 데이터 객체와 UIKit 뷰 사이의 데이터 교환을 조정하는 것은 view controller와 app delegate 객체입니다.
UIKit과 Foundation 프레임워크는 앱의 모델 객체를 정의하는 데 사용하는 여러 가지 기본 타입을 제공합니다. UIKit은 디스크 기반 파일에 속한 데이터 구조를 구성하기 위한 UIDocument 객체를 제공합니다. Foundation 프레임워크는 문자열, 숫자, 배열 및 기타 데이터 타입을 나타내는 기본 객체를 정의합니다. Swift Standard Library는 Foundation 프레임워크에서 사용할 수 있는 많은 타입을 제공합니다.
UIKit은 컨트롤러에 있는 대부분의 객체를 제공하고 앱의 레이어를 표시합니다. 특히, UIKit은 UIView 클래스를 정의합니다. UIView 클래스는 일반적으로 화면에 내용을 표시할 책임이 있습니다. UIApplication 객체는 앱의 메인 이벤트 루프를 실행하고 앱의 전반적인 라이프 사이클을 관리합니다.