Cocoa is the object oriented programming environment used in Mac OS X used to write native OSX code.
Cocoa development uses the Objective-C programming language, typically in Xcode/Interface Builder, which are Apple’s proprietary tools for OSX development. GCC and a text editor such as Emacs may also be used however.
One major reason however for not relying on third party Objective C tools however is Apple’s Human Interface Guidelines, which developers are encouraged to follow in the creation of Apple software. The Interface Builder tool is designed specifically against these guidelines, and thus is a favored tool for Apple development.
The Cocoa API includes varied features including memory management through the NSObject class, a binary versioning scheme, a comprehensive views model, and an upcoming automatic garbage collection scheme.