오늘의 지식: UIKit
UIKit이란?
iOS와 tvOS 앱의 그래픽 이벤트 기반의 사용자 인터페이스를 구성하고 관리하는 프레임워크
입니다.
개요
UIKit 프레임워크
는 iOS와 tvOS 앱에 필요한 인프라를 제공합니다. 유저 인터페이스 구현을 위해 윈도우와 뷰 아키텍처를 제공하고 멀티 터치와 기타 유형의 입력을 앱에 전달하기 위한 이벤트 처리 인프라를 구성하고 사용자와 시스템 그리고 앱 간의 상호작용을 관리하는 데 필요한 메인 런 루프를 제공합니다. 이 외에도 UIKit에서는 애니메이션, 문서, 그리기와 출력, 현재 디바이스에 대한 정보, 텍스트 관리와 표시, 검색, 접근성, 앱 확장 및 리소스 관리와 같은 기능을 제공합니다.
❗️별도로 명시하지 않는 이상 UIKit 클래스는 main thread 또는 main dispatch queue에서만 사용해야 합니다. 이러한 제약사항은 특히 UIResponder에서 파생되거나 어떤 방식으로든 앱 사용자 인터페이스를 조작하는 것과 관련된 클래스에 적용됩니다.
🤔 왜 UIKit 클래스는 main thread 또는 main dispatch queue에서만 사용해야 하는 걸까요❓
iOS 애플리케이션의 인스턴스인 UIApplication은 Cocoa Touch의 진입점 함수인 UIApplicationMain()에 의해 생성되기 때문에 메인 스레드에서 실행됩니다.
Cocoa Touch의 진입점 함수인 UIApplicationMain()가 생성하는 애플리케이션 인스턴스인 UIApplication은 메인 스레드에서 실행됩니다. 또한 앱 런 루프를 포함하여, 메인 이벤트 루프를 설정하고 이벤트 처리를 시작합니다. 앱 메인 이벤트 루프는 모든 UI 이벤트를 수신하게 됩니다. 따라서 이러한 이벤트가 메인 스레드에서 발생하는 것을 볼 수 있으므로 main thread 또는 main dispatch queue에서만 사용해야 합니다.
UIKit에는 다음과 같은 토픽이 존재합니다.
Essentials
- UIKit과 Xcode가 iOS와 tvOS 앱에 기본적으로 제공하는 기능에 대해서 다룹니다.
- 개인정보 보호에 관한 사항을 다룹니다.
App Structure
- 시스템과 앱 간의 상호작용을 관리하고 앱 데이터 및 리소스를 관리할 수 있는 클래스를 제공합니다.
User Interface
- 뷰는 화면에 콘텐츠를 표시하고 사용자와 상호작용을 할 수 있도록 도와줍니다. 뷰 컨트롤러는 뷰와 인터페이스 구조를 관리할 수 있도록 도와줍니다.
User Interactions
- 리스폰더와 제스처 인식기는 터치 및 기타 이벤트를 처리하는 것을 도와줍니다. 드래그 앤 드롭 포커스, 픽 앤 팝 그리고 접근성은 다른 사용자 상호작용을 처리합니다.
Graphics, Drawing, and Printing
- 드로잉 환경을 구성하고 콘텐츠를 렌더링하는 데 도움이 되는 클래스와 프로토콜을 제공합니다.
Text
- 앱에서 텍스트를 표시하는 텍스트 뷰 외에도 시스템 키보드를 지원하는 사용자 정의 텍스트 관리 및 렌더링을 제공합니다.
댓글남기기