아래 내용은 애플 공식문서의 내용 중 Cocoa Core Competencies 을 번역한 내용입니다.
번역에 일부는 주관적인 해석이 들어가 있어 해석, 원문 순으로 언급하고 있습니다.
원문 출처: Apple Official Documentaiton
Cocoa
와 Cocoa Touch
는 각각 OS X
와 iOS
앱 개발환경을 의미합니다. Cocoa
와 Cocoa Touch
모두 Object-C runtime
과 두 개의 코어 프래임워크를 포함하고 있습니다.
Cocoa
는 Foundation
과 AppKit
프래임워크 를 포함하고 OS X
앱 개발에 사용되고 Cocoa Touch
는 Foucndation
과 UIKit
프래임워크를 포함하고 iOS
앱 개발에 사용 됩니다.
Cocoa 는 일반적으로 최상위 클래스가 NSObject 이고 Object-C 런타임에 기반을 두는 클래스나 객체를 의미하는 단어로 사용되어 왔지만, Cocoa (iOS), Cocoa Touch (Mac) 는 각 플랫폼의 인터페이스를 사용하는 앱개발을 의미하기도 합니다.
Foundation
프래임워크는 최상위 클래스이자 기본이 되는 property
와 method
들을 정의하는 NSObject를 구현합니다. 이외에 string, number
와 같은 원시타입 클래스와 arrays, dictionaries
와 같은 콜렉션 클래스도 구현합니다.
Foundation
는 internationalization
, object persistence
, file management
그리고 XML processing
기능도 제공합니다. 해당 클래스들을 사용해 ports
threads
locks
, processes
와 같은 기본적인 시스템 객체와 서비스에 접근할 수 있습니다.
Foundation
는 ANSI C 인터페이스를 통해 사용할 수 있는 Core Foundation
프래임워크에 기반을 두고 있습니다.
Foundation is based on the Core Foundation framework, which publishes a procedural (ANSI C) interface.
앱의 UI를 만드는데 AppKit
, UIKit
프래임워크를 사용합니다. 이 두 프래임워크는 사용 목적은 동일하지만 특정 플랫폼에서 사용된다는 점에서 다릅니다. 두 프래임워크 모두 event handling
, drawing
, image-handling
, text processing
, typography
, interapplication data transfer
클래스를 포함하고 있습니다. 또한 table views
, sliders
, buttons
, text fields
, alert dialogs
와 같은 UI 요소들도 포함하고 있습니다.
Object-C
는 Cocoa
와 Cocoa Touch
앱 개발의 네이티브 언어입니다. 그렇지만 각 프로젝트에 C++
나 ANSI C
코드도 포함 시킬 수 있습니다. 게다가 PyObjC
나 RubyCocoa
와 같이 다른 언어를 Object-C
런타임으로 브릿지시켜 사용하는 스크립트 언어로도 Cocoa
앱을 개발할 수 있습니다.