この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "Cocoa" API
Cocoaは、macOS用のアプリケーションを構築するためのフレームワーク (API) であり、macOSのアプリケーション開発環境の中で主要なものの一つ[注釈 1]。
NeXTSTEP (OPENSTEP) のAPIをベースとしており、macOS向けのネイティブ・アプリケーションを構築するのに適している。逆に、これまでのClassic Mac OS(Mac OS 9.xまでのMac OS)向けのアプリケーションを構築する目的で使用することはできない。
一般に、Cocoaを利用したアプリケーションを構築する場合、Appleから提供される統合開発環境であるXcode(Project Builderの後継)およびInterface Builderを使用する。なお、iOSの主要フレームワークであるCocoa Touchは、タッチインターフェイスを前提にCocoaを再設計したもので、開発環境もほぼ同様のものを用いる。 CocoaはObjective-Cをコア言語とするオブジェクト指向フレームワークである。 OS機能やコレクションクラスなどをまとめたサービス層であるFoundationと、主にGUIパーツの集合であるAppKitの二層構造を成し、狭義ではこの二つ(Core frameworks)をCocoaフレームワークと呼ぶ[1]。厳密な区分ではないが、AddressBook APIなど、周辺サービスを提供するObjective-Cで記述されたフレームワークを広義にCocoaと呼ぶこともある。 基本構造はMVCアーキテクチャで、他に委譲(デリゲート)、ファクトリ、Chain of Responsibility パターンなどが多用される。抽象度の高い下位サービスと柔軟なViewの組み合わせが特に強力で、そのままの利用から高度なカスタマイズまで幅広い適応力を持っている。Mac OS X v10.3ではM-V間の同期を自動化するCocoa Binding
アーキテクチャ
Cocoa自体は純粋な機能セットであり、Objective-C実行環境との通信を確立すれば他の言語からも利用が可能になる。これにより現在ではJava/Perl/Ruby/Python/Common Lispなど、各種のコンパイラ言語またはスクリプト言語との言語ブリッジが確立している(これらの言語内でクラスを定義してObjective-C側から呼び出すことも可能である)。しかしCやC++からは直接Cocoaを使うことはできないため、macOSでは旧来のC/C++プログラマのためにCocoaとほとんど等価な機能をもったCarbon APIも用意されている。 Cocoaはコードネーム『Rhapsody』でのYellow Box
その他
NeXTSTEP由来のCocoaは旧Mac OSのToolbox API由来のCarbonと必ずしも対立するものではない。Carbon APIをラッピングしたもの、Core Foundationとして共有基盤へ実装を移したものなど、単純にインターフェイスとしてCocoa側に出現するものも少なくない(ただし、Objective-Cは一般にCよりも柔軟性に優れており、インターフェイスの差違は大きい)。
脚注[脚注の使い方]
注釈^ 他にはCarbon、POSIX、X11、Javaがある。
出典^ What Is Cocoa? 。Cocoa Fundamentals Guide 。Apple Developer
関連項目
プロパティリスト
GNUstep
SwiftUI
表
話
編
歴
macOS
バージョン
Public Beta
10.0
10.1
10.2
10.3
10.4
10.5
10.6
10.7
10.8
10.9
10.10
10.11
10.12
10.13
10.14
10.15
11
12
13
14
アプリケーション
Automator
DVD プレーヤー
FaceTime
Finder
Font Book
Launchpad
Mac App Store
News(英語版)
Photo Booth
QuickTime Player
Siri
Safari
TV
カレンダー
株価
計算機
探す
写真
辞書
システム設定
ショートカット
スティッキーズ
チェス
テキストエディット
天気
時計
ブック
フリーボード
プレビュー
ホーム
ボイスメモ
ポッドキャスト
マップ
ミュージック
メール
メッセージ
メモ(英語版)
リマインダー(英語版)
連絡先
廃止
Dashboard
Front Row
iChat
iPhoto