Cocoa API
1. Cocoa
'''Cocoa Framework'''
Apple에서 iOS, macOS 등의 Apple 운영 체제용 어플리케이션을 제작할 때 사용하는 프레임워크. 초기에 Apple이 NeXT에서 이걸 샀을 때는 블루 박스라고 불리다가. 이제는 Cocoa라 불린다. Objective-C에는 C++ 같은 네임스페이스가 따로 없기 때문에, 충돌을 피하기 위해 보통 클래스의 이름 앞에 Prefix를 붙인다. Foundation Kit 프레임워크 클래스들은 덕분에 이름앞에 죄다 NS(NeXTSTEP에서 따와서 NS)를 붙여놓았다. NSString이라든지 NSArray라든지...
기본적인 자료형과 메소드가 정의되어 있는 Foundation Kit과 주로 UI 개발에 사용되는 Application Kit으로 이루어져 있다. 줄여서 Foundation, AppKit이라고도 한다. iOS 프로그래밍에서 사용되는 Cocoa Touch에서는 Foundation은 동일하고 AppKit 대신 AppKit에 기반한 UIKit을 사용한다.
Objective-C 기반이며, 보통 Xcode라는 IDE를 이용해서 개발된다. OS X Lion 이상의 운영체제를 사용하고 있면, Xcode를 무료로 이용할 수 있다. 물론 Mac에서'''만''' 사용할 수 있다. 2014년에 공개된 Apple의 새 프로그래밍 언어 Swift가 Cocoa 프레임워크와 완벽 호환되기 때문에, 현 시점에서는 Obj-C 대신 Swift만 알고 있어도 충분하다.
상당히 많고 유용한 클래스들과 UI 쪽들의 지원이 매우 잘 되어있어서 개발자 입장에서는 매우 탄탄한 프레임워크라고 할 수 있다. 정 원하는 UI가 나오지 않더라면 서브클래싱으로 개발자가 입맛에 맞추어 원하는 디자인을 만들어내기가 쉽기 때문에 애플 운영체제(macOS, iOS, watchOS, tvOS) 특유의 디자인과 개발자의 성향이 잘 어우러진 UI가 만들어진다.
특히나 문서화가 매우 잘 되어있는 프레임워크이므로 Apple의 개발자 홈페이지에서 열람이 가능한 클래스/자료형별 문서를 읽어보는 것이 큰 도움이 된다.
여담으로, Cocoa라는 이름은 그당시 지금 이상으로 핫했던 언어인 Java가 커피원산지에서 따온 이름이기 때문에, Apple 개발자는 어린아이도 할 수 있는 자바(Java for kids)라는 의미에서 Cocoa라고 이름지었다고 한다.#
2. Cocoa Touch
특히 iOS 프로그래밍에 이용되는 프레임워크이다. 마찬가지로 지속적으로 업데이트되고 있다.