Mac OS X과 iPhone OS의 근간이 되는 Cocoa와 Cocoa Touch 프레임워크는 Xcode 개발 환경으로 긴밀하게 통합되어 있습니다. Cocoa의 고차원 API는 몇 줄의 코딩 만으로도 여러분의 응용 프로그램에 애니메이션, 네트워킹, 네이티브 플랫폼 외양과 동작 등을 쉽게 추가할 수 있게 해 줍니다.
Cocoa 프레임워크
Cocoa 프레임워크는 모든 Mac OS X의 개발 레이어를 구성하는 라이브러리, API, 런타임으로 이루어져 있습니다. 여러분은 Cocoa를 이용한 개발을 통해 Mac OS X이 구축된 방법과 동일하게 응용 프로그램을 개발할 수 있을 것입니다. 여러분의 응용 프로그램은 UNIX 운영체제의 강력한 성능에 완전하게 접근할 수 있으므로, Mac OS X의 뛰어난 기능과 외양을 자동으로 내려받을 수 있습니다. 간단하게 말하자면, Cocoa와 Xcode IDE는 네이티브 Mac 응용 프로그램을 제작할 수 있는 최고의 방법입니다.
Objective-C의 성능
Cocoa Touch의 대부분은 믿을 수 없을 만큼 빠른 속도로 컴파일 및 구동되면서도 고유의 유연성을 제공하는 완전한 동적 런타임을 차용하는 객체 지향 언어인 Objective-C로 실행됩니다. Objective-C는 C의 수퍼셋이므로, 여러분의 Cocoa Touch 응용 프로그램에 C는 물론 C++까지도 혼합하여 사용하기가 쉽습니다.
여러분의 응용 프로그램이 구동될 때, Objective-C 런타임은 로직 실행을 기반으로 한 오브젝트를 인스턴스화 합니다. 이는 컴파일 중에 정의된 방법이 아닙니다. 예를 들어, Objective-C 응용 프로그램 구동은 인터페이스 (Interface Builder로 생성한 nib 파일) 로딩, 인터페이스의 Cocoa 오브젝트를 여러분의 응용 프로그램 코드와 연결, UI 버튼을 눌렀을 때 올바른 메쏘드 실행을 가능하게 합니다. 재컴파일할 필요가 없습니다.
Objective-C의 동적 런타임은 다수의 현대적 스크립팅 언어와 유사하므로, Cocoa의 기능을 Cocoa Bridge를 사용하여 다른 언어로 쉽게 맵핑할 수 있습니다. 개발자들은 Cocoa Bridge를 이용하여 AppleScript, Ruby, Python을 이용하여 수준급의 Mac OS X 응용 프로그램을 제작할 수 있습니다.
Cocoa가 사용하는 Model-View-Controller 설계 패턴
Cocoa는 전반에 걸쳐 Model-View-Controller (MVC) 설계 패턴을 사용합니다. 모델은 응용 프로그램 데이터를 캡슐화하고, Views는 이를 디스플레이 및 편집하고, Controllers는 이 둘 사이의 로직을 중개합니다. 이와 같은 방법으로 역할을 분리함으로써, 응용 프로그램을 설계, 실행, 유지보수 하는 것이 훨씬 쉬워집니다.
MVC 패턴은 Interface Builder에서 코딩을 작성하거나 생성하지 않고 오로지 응용 프로그램의 View에만 집중한다는 것을 의미합니다ㅏ. Mac과 Cocoa의 긴밀한 관계는 대부분의 연결 코드의 필요성을 경감시키고, Xcode의 컨틀롤러 코드와 Interface Builder로 설계한 뷰 사이의 연결을 그래픽적으로 이 둘을 서로 "이어주기"만 하면 될만큼 쉽게 만들었습니다. Interface Builder는 Cocoa와 함께 여러분의 응용 프로그램을 쉽게 현지화할 수 있게 해주므로 새로운 시장에도 쉽게 진입할 수 있습니다.
기능 목록: 카테고리 별 프레임워크
Cocoa는, 네트워킹 및 데이터부터 그래픽과 전문적인 오디오 프로세싱에 이르기까지 모든 Mac 응용 프로그램을 구축을 위한 공통적인 빌딩 블록을 제공하는 AppKit, Core Foundation과 같은 원형 프레임워크를 포함하고 있습니다. 몇 줄의 코드로도 놀라운 효과를 생성할 수 있는 하이 레벨 Objective-C API부터 코어 시스템의 모든 것을 조작할 수 있는 로우 레벨 프레임워크에 이르기까지 모든 프레임워크를 만날 수 있습니다. 다음은 Cocoa가 제공하는 프레임워크의 간단한 예입니다.
- 오디오 및 비디오
- Core Audio
- Core MIDI
- Core Video
-
데이터 관리
- Core Data
-
네트워킹 및 인터넷
- Bonjour
- Directory Services
- Kerberos
-
그래픽 및 애니메이션
- Core Animation
- Core Image
- OpenGL
- Quartz
- QuickTime
- QTKit
-
스크립팅 언어와 연결해주는
-
Cocoa Bridges
- AppleScript
- Python
- Ruby
-
사용자 응용 프로그램
- Address Book
- Calendar Store
- Instant Message



