ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [개발자 문서읽기] About App Development with UIKit
    iOS 2020. 9. 16. 16:01
    728x90
    의역과 오역이 있을 수 있습니다. 
    자세한 내용은 원문 About App Development with UIKit 을 참고해주세요 :)

     

    UIKit

    Overview

    UIKit 프레임워크는 iOS나 tvOS를 빌드하는 데 필요한 핵심 오브젝트들(Core Objects)을 제공합니다. 이러한 오브젝트들을 이용해 화면에 콘텐츠를 보여주고 해당 콘텐츠와 상호작용하며 시스템과의 상호작용을 관리할 수 있습니다. 앱은 기본 동작을 위해 UIKit에 의존하고 특정 요구에 맞게 커스텀 할 수 있는 다양한 방법을 제공합니다.

    Xcode 는 아래와 같은 기본 템플릿을 제공하고 즉시 실행시켜 볼 수 있습니다.

    앱을 빌드시키면 Xcode는 source files을 컴파일하고 프로젝트를 위한 app bundle을 하나 만듭니다.

    App bundle 은 디렉토리 구조로 앱과 관련된 코드와 리소스 (code and resources) 를 포함하고 있습니다. Resource는 image assets, storyboard files, strings files, app metadata(코드를 보조하기 위한) 등을 포함합니다. 이 번들 구조는 매우 중요하지만 Xcode가 알아서 해주기 때문에 당장은 고민하지 않아도 됩니다.

    Required Resources

    모든 UIKit 앱은 다음 리소스들을 필수적으로 갖고 있어야 합니다.

    • App icons
    • Launch screen storyboard

    시스템은 홈화면, 설정 및 다른 앱과 구별해야 하는 모든 위치에 app icon을 표시합니다. 여러 장소, 여러 디바이스에서 사용되기 때문에 여러 버전의 앱 아이콘을 제공합니다.

     

    LaunchScreen.storyboard 파일은 앱의 처음 UI를 가지고 있습니다. 이는 스플래쉬 화면이나 실제 인터페이스의 단순화된 버전이 될 수 있습니다. 사용자가 앱을 터치하면 시스템은 즉시 런치 스크린을 보여줘서 사용자에게 앱이 실행되고 있다고 알려주면서 동시에 앱이 초기화되는 동안 가려주는 역할을 합니다. 시스템은 준비가 끝나면 런치스크린을 가리고 실제 UI를 보여줍니다.

    Required App Metadata

    system은 앱 구성 및 기능에 대한 정보를 앱 번들에 있는 the information property list (Info.plist) file에서 얻습니다. Xcode는 새로운 템플릿을 만들면 미리 구성된 plist 파일을 제공하지만, 앱이 특정 하드웨어에 의존하거나 특정 시스템 프레임워크를 사용한다면 관련 정보를 추가해야 합니다.

    info.plist 파일를 수정하는 경우 중 하나는 앱의 하드웨어 및 소프트웨어 요구사항을 추가하는 것입니다. 이러한 요구사항은 앱 실행에 필요한 정보를 시스템에 전달합니다. 예를 들어, 네비게이션 앱이 길찾기를 제공하려면 GPS 하드웨어가 필요합니다. App store는 요구사항을 충족하지 못하는 기기에 앱을 설치하지 못하도록 합니다.

    info.plist 파일의 정보에 관한 구체적인 내용은 Information Property List Key Reference 를 참고하세요.

    Code Structure of a UIKit App

    UIKit은 시스템과 상호 작용하고 앱의 기본 이벤트 루프를 실행하며 화면에 콘텐츠를 표시하는 등 앱의 핵심 개체(Core object)를 많이 제공합니다. 이러한 개체 대부분을 그대로(as-is) 또는 아주 조금만 수정해서 사용하면 됩니다. 수정할 개체와 수정 시기를 아는 것은 앱을 구현하는 데 매우 중요합니다.

    UIKit의 구조는 각 개체들이 목적에 따라 나눠져 있는 MVC 패턴에 기반을 두고 있습니다. Model 개체는 앱의 데이터와 비즈니스 로직을 관리합니다. View 개체는 데이터의 시각화를 담당합니다. Controller 는 모델과 뷰 사이의 중간다리 역할을 하면서 서로에게 적절히 데이터를 전달합니다.

    아래 그림은 UIKit 앱의 매우 일반적인 구조를 나타냅니다. 앱의 데이터 구조를 위한 모델을 제공합니다. UIKit은 대부분의 뷰개체를 제공합니다. 물론 필요하다면 custom view를 사용할 수도 있습니다. data 개체와 UIKit 뷰 개체 간의 데이터 교환은 View Controller 와 app delegate 개체가 담당합니다.

    UIKit과 Foundation 프레임워크는 앱 모델 개체들을 정의하는 데 필요한 기본 타입들을 제공합니다. UIKit은 디스크 기반의 데이터 구조를 구성하기 위한 UIDocument 개체를 제공합니다. Foundation 프레임워크는 strings, numbers, arrays 등 다른 데이터 타입에 대한 기본 개체들을 제공합니다. Swift Standard Library는 Foundation 프레임워크에서 사용할 수 있는 동일한 유형들을 제공합니다.

    UIKit은 컨트롤러 및 뷰 레이어에 있는 대부분의 개체를 제공합니다. 특히 UIKit은 일반적으로 콘텐츠를 화면에 표시하는 UIView 클래스를 정의합니다. Metal 및 기타 시스템 프레임워크를 사용해 콘텐츠를 화면에 직접 렌더링 할 수도 있습니다. UIApplication 개체는 앱의 메인 이벤트 루프를 실행시키고 앱의 전반적인 생명주기를 관리합니다.

    Reference

    댓글

Designed by Tistory.