What is Cocoa?

Cocoa is Apple's native object-oriented application programming interface (API) for their operating system macOS.

For iOS, tvOS, and watchOS, a similar API exists, named Cocoa Touch, which includes gesture recognition, animation, and a different set of graphical control elements. It is in applications for Apple devices such as iPhone, iPad, iPod Touch, Apple TV, and Apple Watch.

What about Swift and SwiftUI?

Swift is a powerful and intuitive programming language for all Apple platforms and SwiftUI is modern way to declare user interfaces for any Apple Platform.



So is Cocoa still relevant?

Well, Cocoa consists of the Foundation Kit, App(lication) Kit, and Core Data frameworks, as included by the Cocoa.h header file, and the libraries and frameworks included by those, such as the C standard library and the Objective-C runtime.

UIKit matched Appkit but for development on Apple devices such as iPhone, iPad, iPod Touch, Apple TV, and Apple Watch.

Apple is working towards unifying most of the Apple platform development towards Swift and SwiftUI but at the moment AppKit and UIKit are still used in various applications.

Cocoa applications are typically developed using the development tools provided by Apple, specifically Xcode (formerly Project Builder) and Interface Builder, using the languages Objective-C or Swift. However, the Cocoa programming environment can be accessed using other tools, such as Clozure CL, LispWorks, Object Pascal, Python, Perl, Ruby, and AppleScript with the aid of bridge mechanisms such as PasCocoa, PyObjC, CamelBones, RubyCocoa, and a D/Objective-C Bridge. A Ruby language implementation named MacRuby, which removes the need for a bridge mechanism, was formerly developed by Apple, while Nu is a Lisp-like language that can be used with Cocoa with no bridge. It is also possible to write Objective-C Cocoa programs in a simple text editor and build it manually with GNU Compiler Collection (GCC) or clang from the command line or from a makefile.

For end-users, Cocoa applications are those written using the Cocoa programming environment. Such applications usually have a distinctive feel, since the Cocoa programming environment automates many aspects of an application to comply with Apple's human interface guidelines.


Github mark


Want to support our CocoaHeads Chapter? Sponsor us either as an individual or a company through GitHub.

Moneybird


Moneybird offers entrepreneurs an online accounting tool for managing their finances. Features include creating invoices, storing purchase invoices, scanning receipts and sending quotes.

Egeniq


We are a young mobile technology company developing apps for various platforms and devices. A solid foundation in software engineering and practical experience are the key ingredients in our activities.