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(Controller層)、Mac OS X v10.4ではモデリングを自動化するCore Dataが実装され、さらに記述の抽象度は上がっている。

Cocoa自体は純粋な機能セットであり、Objective-C実行環境との通信を確立すれば他の言語からも利用が可能になる。これにより現在ではJava/Perl/Ruby/Python/Common Lispなど、各種のコンパイラ言語またはスクリプト言語との言語ブリッジが確立している(これらの言語内でクラスを定義してObjective-C側から呼び出すことも可能である)。しかしCC++からは直接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よりも柔軟性に優れており、インターフェイスの差違は大きい)。

脚注

編集

注釈

編集
  1. ^ 他にはCarbonPOSIXX11Javaがある。

出典

編集

関連項目

編集

📚 Artikel Terkait di Wikipedia

Google Cloud

マップの地図、経路、場所に関するデータをアプリに統合できる API 群 Apigee API Platform - API の設計、セキュリティ確保、分析、スケーリングを行うための管理プラットフォーム API Monetization - API プロバイダーが API の利用に対して課金し、収益化するための Apigee

Intel Core M

HD対応、API - DirectX 11.2、OpenGL 4.3 キャッシュ容量 (L1/L2/L3) - L1: (32 KB+32 KB)×2, L2: 256 KB×2, L3: 4 MB 発売時期(発表日 or 発売日) - 2014年9月 特記事項 - vPro/TSX/TXTは、M-5Y71/M-5Y70のみ有効。PCI

オペレーティングシステム

アプリケーションプログラミングインタフェース (API) とアプリケーションバイナリインタフェース (ABI) である。カーネルはシステムコールによってアプリケーションにサービスを提供する。さらに基本ライブラリも含めた形でアプリケーションに対してAPI/ABIを提供する。アプリケーションによってはオ

S!アプリ

SoftBank 3G は以下のAPIの一部または全部に対応。 CLDC 1.1 (JSR 139) MIDP 2.0 (JSR 118) Location API (JSR 179) Mobile Media API (JSR 135) Wireless Messaging API (JSR 120) Mobile

測地系

NAVITIME API 2.0 仕様書”. api-sdk.navitime.co.jp. 2024年12月17日閲覧。 ^ “日本の測地系 | 国土地理院”. gsi.go.jp. 2024年12月17日閲覧。 ^ APIはJGD2011と明記されている。“道路通行量(車)API”. business

Indexed Database API

Indexed Database API (Indexed DB, インデックス データベース API)とは、W3Cにより仕様策定が行われている、値とオブジェクトをローカルデータベースに保持するウェブブラウザの標準インターフェース。Indexed DB は元々2009年にオラクルが提案した。 同じくクライアントサイドに保存する技術として

Mobile 3D Graphics API

Micro Edition > Mobile 3D Graphics API Mobile 3D Graphics API (M3G) は、3次元コンピュータグラフィックスを生成するJavaを記述するためのAPIを定義した仕様である。M3Gは携帯電話やPDAのような組み込みデバイス向けのJavaプラットフォームバージョンである

Androidのバージョン履歴

発売から5年間 Androidの各バージョンには対応する「APIレベル」が規定されている。APIレベルは使用可能なアプリケーションプログラミングインタフェース(API)すなわち機能を定めるものである。新しいバージョンのAndroid OSで追加されたAPIを使用するには、アプリケーションのビルドに新しいバージョンのAndroid