사과
  • 애플 개발자 문서 한글 번역
  • App Frameworks
    • Foundation
      • 숫자, 데이터와 기본값
      • 문자열과 텍스트
      • 컬렉션
      • 날짜와 시간
      • 데이터 포맷
      • 작업 관리
        • Operation
        • OperationQueue
        • Timer
      • 리소스
        • Bundle
      • 파일 시스템
        • FileManager
      • Notification
        • NSKeyValueObserving
      • URL 로딩 시스템
        • 웹사이트 데이터를 메모리에 저장하기
        • URLSession
          • URLSessionConfiguration
            • urlCache
            • requestCachePolicy
          • configuration
        • URLSessionTask
        • URLRequest
        • URLResponse
        • HTTPURLResponse
        • 캐시 데이터에 접근하기
        • CachedURLResponse
        • URLCache
      • Object Runtime
        • NSValue
    • UIKit
      • UIKit으로 앱 개발
      • 앱과 환경
        • 앱 라이프 사이클 관리하기
        • 앱 실행에 대응하기
        • UIApplication
      • 문서, 데이터와 클립보드
      • Mac Catalyst
        • iPad 앱을 Mac 버전으로 만들기
        • 아이패드 앱의 맥 최적화
      • 뷰와 컨트롤
        • UIView
        • Table Views
          • UITableView
          • UITableViewCell
          • UIRefreshControl
        • UIScrollView
      • View Controllers
        • UIViewController
        • UITableViewController
        • UISearchController
      • 애니메이션과 햅틱
        • 프로퍼티 기반 애니메이션
          • UIViewPropertyAnimator
        • View controller 전환
      • 터치, 누르기, 제스처
        • UIResponder
        • UIKit 제스처 처리
        • 다중 제스처 인식기 조정
        • UILongPressGestureRecognizer
        • UIPanGestureRecognizer
          • maximumNumberOfTouches
          • minimunNumberOfTouches
          • translation(in:)
          • setTranslation(_:in:)
          • velocity(in:)
        • UIGestureRecognizer
    • Swift
      • 스위프트 표준 라이브러리
        • 메모리 직접 관리
          • 포인터 파라미터를 사용하는 함수 호출
          • UnsafePointer
          • UnsafeMutableRawBufferPointer
    • SwiftUI
      • 뷰와 컨트롤
        • View
        • Text
        • TextField
      • 뷰 레이아웃과 표현
      • 그리기와 애니메이션
      • 프레임워크 통합
      • 상태와 데이터 흐름
  • Graphics and Games
    • Core Animation
      • CALayer
      • CAAction
      • CAShapeLayer
      • CADisplayLink
    • Core Graphics
      • CGFloat
      • CGPath
  • App Services
    • Combine
    • WebKit
      • WKWebView
  • Media
    • AVFoundation
      • 시스템 오디오 상호작용
        • AVAudioSession
          • AVAudioSession.Category
            • ambient
            • multiRoute
            • playAndRecord
            • playback
            • record
            • soloAmbient
          • AVAudioSession.Mode
      • AVFoundation 자료형
  • Documentation Archive
    • 번들 프로그래밍 가이드
      • 번들에 대해
      • 번들 구조
    • Key-Value Observing 프로그래밍 가이드
    • Threading 프로그래밍 가이드
      • About Threaded Programming
      • Thread Management
  • ETC
    • Not Found
Powered by GitBook
On this page
  • 개요
  • 필수 리소스
  • 앱 메타데이터 요구사항
  • UIKit 앱의 코드 구조
  1. App Frameworks
  2. UIKit

UIKit으로 앱 개발

iOS/tvOS 앱 개발을 위해 UIKit과 Xcode가 제공하는 기본기능에 대해서 알아보세요

PreviousUIKitNext앱과 환경

Last updated 6 years ago

원문 출처

개요

UIKit 프레임워크는 iOS 및 TVOS용 앱을 만드는 데 필요한 핵심 객체를 제공합니다. 이러한 객체를 사용하여 콘텐츠를 화면에 표시하고, 콘텐츠와 상호 작용하며, 시스템과의 상호 작용을 관리할 수 있습니다. 앱은 기본 동작을 UIKit에 의존하며 UIKit은 특정 요구에 맞게 동작을 커스터마이즈 할 수 있는 다양한 방법을 제공합니다.

중요

iOS나 tvOS의 개발은 Xcode에서 프로젝트를 만드는 것에서부터 시작됩니다. Xcode가 없는 경우 App Store 또는 에서 최신 버전을 다운로드할 수 있습니다.

Xcode는 생성하는 모든 앱의 시작점으로 템플릿 프로젝트를 제공합니다. 예를 들어 그림 1은 Xcode에서 싱글 뷰 앱 템플릿을 사용하여 만든 앱의 구조를 보여줍니다. 템플릿 프로젝트는 최소 사용자 인터페이스를 제공하기 때문에 프로젝트를 즉시 빌드하고 기기나 시뮬레이터에서 실행해 볼 수도 있습니다.

그림 1. single view iOS 앱의 구조

앱을 만들 때 Xcode는 원본 파일을 컴파일하고 프로젝트에 사용할 앱 번들을 만듭니다. 앱 번들은 앱과 관련된 코드와 리소스를 포함하는 구조화된 디렉토리입니다. 리소스에는 코드를 지원하는 이미지 Asset, 스토리보드 파일, 문자열 파일 및 애플리케이션 메타데이터가 포함됩니다. 앱 번들의 구조는 중요하지만, Xcode는 여러분의 리소스가 어디로 가야 하는지 알고 있으니, 당분간은 걱정하지 마세요.

필수 리소스

모든 UIKit 앱은 다음 리소스를 필수적으로 요구합니다:

  • 앱 아이콘

  • Launch 스크린 스토리보드

시스템은 홈 스크린, 설정 및 다른 앱과 구분하는데 필요한 모든 위치에 앱 아이콘을 표시합니다. 앱 아이콘은 여러 위치와 기기에서 사용되므로 그림 2와 같이 Xcode 프로젝트의 AppIcon 이미지 asset에 앱 아이콘의 여러 버전을 제공할 수 있습니다. 앱 아이콘은 사용자가 홈 화면에서 앱을 빠르게 식별할 수 있도록 독특해야 하며 이미지 크기별로 아이콘 세부사항을 다르게 적용할 수도 있습니다.

LaunchScreen.storyboard 파일에는 앱의 초기 사용자 인터페이스가 포함되어 있으며 스플래시 화면이나 실제 인터페이스의 단순화 된 버전이 될 수 있습니다. 사용자가 앱의 아이콘을 탭하면 시작 화면이 즉시 표시되어 사용자에게 앱이 시작되고 있음을 알립니다. 시작 화면은 앱을 초기화하는 동안 앱에 대한 표지도 제공합니다. 앱이 준비되면 시스템이 시작 화면을 숨기고 앱의 실제 인터페이스를 표시합니다.

앱 메타데이터 요구사항

시스템은 앱 번들의 정보 속성 목록 (Info.plist) 파일에서 앱의 구성과 기능에 대한 정보를 가져옵니다. Xcode는 모든 새 프로젝트 템플릿에 이 파일의 미리 구성된 버전을 제공하지만 어느 시점에 이 파일을 수정해야 할 수도 있습니다. 예를 들어 앱이 특정 하드웨어를 사용하거나 특정 시스템 프레임워크를 사용하는 경우 해당 기능과 관련된 정보를 이 파일에 추가해야 할수 있습니다.

Info.plist 파일을 수정하면 앱의 하드웨어 및 소프트웨어 요구사항을 선언할 수 있습니다. 이러한 요구사항은 앱이 실행될 시스템과 통신하는 방법입니다. 예를 들어, 네비게이션 앱은 GPS 하드웨어가 있어야 그림을 볼 수 있습니다 (그림 3 참조). 앱 스토어는 앱 요구 사항에 맞지 않는 기기에 앱이 설치되는 것을 방지합니다.

UIKit 앱의 코드 구조

UIKit은 앱의 핵심 객체를 제공하는 것 외에도 시스템과의 상호작용하고 앱의 메인 이벤트 루프를 실행하며 화면에 콘텐츠를 표시하는 기능을 수행합니다. 이러한 객체의 대부분은 그대로 사용되거나 약간의 수정을 거칩니다. 수정할 객체와 수정할 시기를 아는 것은 앱을 구현하는 데 중요합니다.

UIKit 어플리케이션의 구조는 객체가 목적에 따라 구분되는 MVC (Model-View-Controller) 디자인 패턴을 기반으로 합니다. 모델 객체는 앱의 데이터 및 비즈니스 로직을 관리합니다. 뷰 객체는 데이터의 시각적 표현을 제공합니다. 컨트롤러 객체는 모델과 뷰 객체 사이의 다리 역할을 하며 적절한 타이밍에 데이터를 이동시킵니다.

그림 4는 UIKit 앱의 일반적인 구조를 나타냅니다. 앱의 데이터 구조를 나타내는 모델 객체가 제공되고 있습니다. UIKit은 대부분의 뷰 객체를 제공하지만 필요에 따라 데이터에 대한 커스텀 뷰를 만들수도 있습니다. 데이터 객체와 UIKit 뷰 사이의 데이터 교환을 조정하는 것은 view controller와 app delegate 객체입니다.

그림2. iOS 앱 아이콘 화면
그림 3. 앱의 하드웨어 및 소프트웨어 요구사항 선언

Info.plist 파일에 포함할 수 있는 키에 대한 정보는 를 참조하십시오.

그림 4. app 핵심 객체

UIKit과 Foundation 프레임워크는 앱의 모델 객체를 정의하는 데 사용하는 여러 가지 기본 타입을 제공합니다. UIKit은 디스크 기반 파일에 속한 데이터 구조를 구성하기 위한 객체를 제공합니다. Foundation 프레임워크는 문자열, 숫자, 배열 및 기타 데이터 타입을 나타내는 기본 객체를 정의합니다. 는 Foundation 프레임워크에서 사용할 수 있는 많은 타입을 제공합니다.

UIKit은 컨트롤러에 있는 대부분의 객체를 제공하고 앱의 레이어를 표시합니다. 특히, UIKit은 UIView 클래스를 정의합니다. 클래스는 일반적으로 화면에 내용을 표시할 책임이 있습니다. 객체는 앱의 메인 이벤트 루프를 실행하고 앱의 전반적인 라이프 사이클을 관리합니다.

Information Property List Key Reference
UIDocument
Swift Standard Library
UIView
UIApplication
https://developer.apple.com/documentation/uikit/about_app_development_with_uikit
developer.apple.com