UIKit

iOS를 공부하고 진행하다보면 코코아(Cocoa) 라는 단어를 여러번 접하게 된다.

코코아 터치, 코코아 프레임워크 등...

 

Cocoa

- NSObject를 상속받는 모든 클래스를 가르키는 단어

 

Cocoa Touch

- 코코아 터치 프레임워크란 iOS 환경을 구축하기 위한 최상위 프레임워크이다.

- 일반적으로, 옵씨에서의 NSObject 와 스위프트에서 사용되는 UIKit / Foundation 등에 포함되는 대부분의 클래스가 여기에 속한다.

  - 따라서 iOS 애플리케이션은 코코아 터치 프레임워크 환경에서 구축된다고 할 수 있다.

UIKit

- UIKit 프레임워크는 UI를 관리하고, 사용자와의 이벤트(Interaction)을 처리해주는 프레임워크다.

  - macOS에서는 AppKit이라는 프레임워크를 사용한다고 한다.

- 처리하는 주된 이벤트들은 제스처(터치, 스와이프, 핀치... 등), 애니메이션, 이미지, 텍스트 등 말 그대로 UI와 연결되는 것들이다.

- UIView, UIViewController 등의 앞에 UI가 붙는 클래스들 또한 UI를 위해 사용되는 것이고 당연히 UIKit 프레임워크에 속한다.

 

Foundation

- 애플리케이션의 중심을 담당한다.

- 원시 데이터 타입(String, Int, Double 등)이 Foundation 프레임워크에 포함되어있기 때문에, 반드시 사용된다.

- Resource, Notification, Error, FileSystem, URL 등 애플리케이션을 동작하기 위해 필요한 대부분이 속해있다.

 

 

그렇다면 UI를 작성하기 위해 UIKit을 import하고 동작을 위해 Foundation을 import해야 하는가??

기본적인 코코아 프레임워크의 계층구조이다.

UIKit은 최상단의 Cocoa Touch 계층이고 Foundation은 CoreServices 계층에 속한다.

그렇기 때문에, UIKit을 import하면 Foundation을 별도로 import하지 않아도 된다.

+ Recent posts