Cocoa Touch is the programming interface for the iPhone. At Apple's iPhone SDK announcement, Scott Forstall introduced multitouch controls and accelerometers to enhance the Cocoa interface. Game developers, Forstall said, will have access to the accelerometers.
- An iPhone version of Cocoa
- Provides an abstraction layer for the iPhone OS
- Built around touch input
- Based on Cocoa API
- Believed to stand for "Core Objective-C Object Architecture"
Cocoa is the native programming environment for Mac OS X. It is one of five of the available APIs offered from Apple. It was derived from the original programming used for the NeXT operating system. On December 20, 1996, Apple acquired NeXT and incorporated much of it's programming into Mac OS X including Cocoa.
Cocoa is derived from the NeXTSTEP and OPENSTEP programming environments developed by NeXT in the late 1980s. Apple acquired NeXT in December 1996, and subsequently went to work on the Rhapsody operating system that was supposed to be the direct successor of OPENSTEP. It was to have an emulation base for Mac OS applications, called Blue Box. The OPENSTEP base of libraries and binary support was termed Yellow Box. Rhapsody evolved into Mac OS X, and the Yellow Box became Cocoa. As a result, Cocoa classes begin with the acronym "NS" (standing either for the NeXT-Sun creation of OPENSTEP, or for the original proprietary term for the OPENSTEP framework, NeXTSTEP): NSString, NSArray, etc.
Much of the work that went into developing OPENSTEP was applied to the development of Mac OS X, Cocoa being the most visible part. There are, however, some differences. For example, NeXTSTEP and OPENSTEP used Display PostScript for on-screen display of text and graphics, while Cocoa depends on Apple's Quartz (which uses the PDF imaging model). Cocoa also has a level of Internet support, including the NSURL and WebKit HTML classes, and others, while under OPENSTEP there was only rudimentary support for managed network connections through NSFileHandle classes and Berkeley sockets.
iPhone Reference Library
- Audio & Video
- Data Management
- Graphics & Animation
- Networking & Internet
- User Experience