Cocoa [ˈkoʊkoʊ] (engl. für „Kakao“) ist ein objektorientiertes API zur Programmierung unter dem Betriebssystem Mac OS X von Apple.
Cocoa-Programme sind meist solche mit einer graphischen Benutzeroberfläche (GUI), wobei ebenso auch die Entwicklung von z. B. Kommandozeilen-Tools oder Daemons möglich ist. Typischerweise erfolgt die Entwicklung mit Hilfe der „Developer Tools“, die Apple kostenfrei zur Verfügung stellt und die im Wesentlichen aus der IDE Xcode (Vorgänger: Project Builder) und dem Interface Builder bestehen.
Als primäre Programmiersprache dient dabei das an Smalltalk angelehnte Objective-C (eine objektorientierte Obermenge von C); C/C++ ist grundsätzlich innerhalb eines Projektes verwendbar[1]. Alternativ ist die Programmierung (mit Einschränkungen) aus Java heraus möglich. Insbesondere wird die Java-Cocoa Bridge von Apple überhaupt nicht mehr unterstützt. Weiterhin existieren Schnittstellen, um Cocoa aus anderen Sprachen zu nutzen, so etwa PerlObjCBridge (für Perl) oder die Open-Source-Projekte PyObjC (für Python) sowie RubyCocoa (für Ruby) und Cocoa# (für C# bzw. Mono). In der Betriebssystem-Version 10.4 enthält Cocoa sogar eine kleine Datenbank (SQLite). Die Mac-eigene Skriptsprache Apple Script kann genutzt werden, um einfache Aktionen und Routinen zu implementieren.
Inhaltsverzeichnis |
Cocoa war zunächst der Name für eine in Sk8 geschriebene Multimedia-Entwicklungsumgebung von Apple für Kinder und wurde später von der Firma Stagecast mit dem Programm Stagecast Creator weitergeführt.
Das heutige Cocoa ist eine Weiterentwicklung von NeXTSTEP und OPENSTEP, das von der Firma NeXT in den späten 1980er Jahren entwickelt wurde.
Nach Erscheinen einer Betaversion von Safari für Windows im Juni 2007 kamen Gerüchte auf[2], dass Apple (wieder) an einer Portierung von Cocoa auf die Windows-Plattform arbeitet.
Cocoa besteht aus drei Frameworks:
Die Klassen des Cocoa-Frameworks tragen die Kennung NS.
Mit OS X werden weitere Frameworks geliefert, die jedoch keine Bestandteile von Cocoa selbst sind.
Diese Frameworks entsprechen in etwa dynamisch geladenen Objektbibliotheken (DLL/DSO). Sie stehen unter Mac OS X als kompilierte Objektdateien zur Verfügung. Die meisten der Frameworks, aus denen Cocoa besteht, wurden von Apple bislang noch nicht im Quelltext freigegeben.