본문 바로가기

공부/iOS

iOS - UIKit

안녕하세요. brody 입니다.

저번시간에는 개발문서 최상단에 있던 2020/07/03 - [공부/iOS] - iOS - Cocoa Touch Framework 를 정리했었죠.

 

이번시간에는 앱 개발중에 가장 중요하다고 하는 2개의 프레임워크 UIKit, Foundation중 UIKit에 대해서 문서를 정리해볼게요.

 

이번에도 시작하기 전에 제가 알고 있었던 UIKit은 간단하게 아래와 같아요.

- iOS 계층구조중 제일 상단에 Cocoa Touch Framework에 속해있다.

- 유저인터페이스에 관련된 기능을 제공한다.(이름에 UI가 들어가니까..ㅎ)

- iOS 개발에서 빠질수 없는 ViewController가 상속받는 UIViewController역시 UIKit에 정의된 클래스 이다. 

  (그래서 UIViewController는 무조건 import UIKit이 되어있다.)

정도 인데요.

 

그러면 이제 문서를 보고 조금더 알아볼게요 ~  

(보라색 글씨는 문서와 상관없는 제 생각입니다.)

 

시작!


 

UIKit

iOS 또는 TVOS 앱을 위한 이벤트 중심 그래픽 UI를 구성하고 관리합니다.

 

Overview

UIKit 프레임워크는 iOS 또는 TVOS앱에 필요한 인프라(기반 시설)을 제공합니다.

 

UIKit는 아래의 기본 기능들을 제공합니다.

- 인터페이스를 구현하기 위한 window와 view의 아키텍처

- 멀티 터치 및 기타 유형의 입력을 앱에 제공하기 위한 이벤트 처리 인프라

- 사용자와 시스탬 및 앱 간의 상호작용을 관리하는데 필요한 메인 실행 루프 (main run loop) 

 

 

UIKit에서 제공하는 기타 기능은 아래와 같습니다.

- 애니메이션 지원

- 문서 지원

- 그리기 및 print 지원

- 현재 장치에 대한 정보 지원

- 텍스트 관리 및 표시 지원

- 검색 지원 

- 접근성 지원

- 앱 확장 지원 

- 리소스 관리 지원 

 

(음.. 검색을 지원한다는게 데이터베이스 지원인건가..? 다음에 공부하다 보면 알겠지...)

 

중요!!

UIKit의 클래스들은 달리 지시하지 않는 한 오직 앱의 메인쓰레드와 메인 dispatch queue에서만 사용해야 합니다.

이 제한은 특히 UIResponder에서 파생되거나 어떤 방식으로든 앱의 사용자 인터페이스를 조작하는것과 관련된 클래스에서 적용됩니다.

(그렇죠.. 메인 쓰레드에가 아닌곳에서 UI 를 수정하면 오류가 나죠 ㅋㅋ.)

 

 


Topics

필수항목

- UIKit을 통해 앱 개발하기 문서

UIKit 과 Xcode가 iOS 및 TVOS앱을 위해 제공하는 기본 지원에 대해 알아봅니다.

- 사용자의 개인정보를 보호

개인 데이터를 보호하고 데이터 사용 방법에 대해 사용자 기본 설정을 준수합니다.

 

App Structure(앱구조)

UIKit은 시스템과 앱의 상호 작용을 관리하고 앱의 데이터와 리소스를 관리할 수 있는 클래스를 제공합니다.

 

User Interface(유저 인터페이스)

View는 콘텐츠를 화면에 표시하고 사용자의 상호작용을 용이하게 하는데 도움이 되며, ViewController는 View 와 인터페이스 구조를 관리하는데 도움이 됩니다.

 

User Interactions(유저 상호작용)

Responder와 gesture recognizers를 사용하여 터치 및 기타 이벤트를 처리할 수 있습니다. 
드래그앤 드랍, 포커스, peek and pop 및 접근성이 다른 사용자의 상호작용을 처리합니다.

 

Graphics, Drawing, and Printing(그래픽, 그리기, 출력하기)

UIKit은 도면(그리기) 환경을 구성하고 내용을 렌더링하는데 도움이 되는 클래스 및 프로토콜을 제공합니다.

 

Text(문자)

UIKit은 앱에서 텍스트 표시를 단순화하는 텍스트 보기 외에도 시스템 키보드를 지원하는 사용자 지정 텍스트 관리 및 렌더링을 제공합니다.

 

등의 문서를 제공합니다.

 

 


이렇게 UIKit 공식문서를 훑어봤는데요. 

UIKit이 생각보다 많은 기능을 제공하네요.

UI관련된 내용만 제공하는줄 알았는데 gesture recognizers까지 제공할줄은 몰랐어요 ㅋㅋ.

그리고 main run loop와 event loop를 예전에 공부했었는데 오랜만에 보니까 다시 헷갈리네요 ㅠㅠ 이것도 다음에 한번 정리해야 겠어요.

 

그러면 다음시간에는 UIKit의 필수항목에 있던 문서를 번역해볼게요.

 

영알못이라 번역은 구글번역과 네이버 파파고의 힘을 빌려서 하고있어요!

 

그럼 이만!

 

애플 공식문서 출처는 아래와 같습니다.

https://developer.apple.com/documentation/uikit