There are over 100 available frameworks in the Mac OS Frameworks library and they range in functionality for building Application UI, for Rendering Web Content in a Cocoa Application or for creating 3D effects using OpenGL or doing image processing or dealing with huge data calculations or playing media files.High level summary information of the Mac OS frameworks can be found at
What is Cocoa
Cocoa is an application environment and a suite of object oriented components to develop OSX and iOS Apps.
Cocoa apps are primarily developed using Objective C language. Objective C is based out of ANSI C thus ANSI C code can be mixed with Objective C code while developing a Cocoa Application.
Cocoa Applications can also include C++ code.
Cocoa has 3 core frameworks
- Foundation Framework (Part of the core service layer)
- App Kit Framework (Application Frameworks)
- Core Data Framework.
What does Cocoa Offer
- Cocoa provides the infrastructure for event driven behavior.
- It helps manage application, windows and workspaces
- Has a rich library of user interface objects available in Interface builder. UI Objects can be dragged dropped from the interface builder or can be created from code. Some sample UI objects are (buttons, tables, views, windows, panels, drawers, segmented control etc).
- Supports drawing and imaging
- Supports interaction with file system and workspaces
- Supports concurrency, multithreading , lazy loading etc
- Supports internationalization
- Supports different text representation
- Maintains application preferences
- Support networking, communication with servers
- Printing support, basic printing to advanced printing options such as pagination and content formatting
- Handles Undo and Redo management
- Supports Audio and Video using Quicktime framework
- Support data exchange using Copy Paste and Drag Drop
- Support document based architecture (similar to word or excel)
- Supports script-ability, i.e Applications responding to commands emitted from Apple Scripts (e.g: Play, Pause songs in iTunes using Apple Scripts)
What are the different Layers of the Mac OSX?
The Mac OSX is layered into the following
– User Experience
– Application Frameworks
– Graphics and Media (Application Services)
- Core Animation
- Core Image
- Core Video
- Core Audio
– Core Services
- Carbon Core
- Launch Services
- Core Foundation