Mac OS Frameworks

Mac OS Frameworks

There are more than a 100 frameworks in the Mac OS Frameworks Library.

The following is a high level overview of some of the critical and important frameworks. This page will be updated regularly, till all the available frameworks has been summarized.

This summary document has been recreated after reading through framework documents available at https://developer.apple.com/devcenter/mac/


Cocoa.framework

The most important framework in Mac OSX . Consists of libraries and APIs and runtime environment that forms the development layer for all Mac OSX Application.

Using Cocoa framework and xCode IDE is the best way to create Mac OSX Applications.

The Cocoa Framework consists of three main frameworks

  • Foundation Framework
  • Application Kit Framework
  • CoreData Framework

The most widely used design pattern in Cocoa is MVC where M-Model, V-View and C-Controller

  • Models are used for holding data
  • Views are used for visual representation of data in form of tables, text fields etc
  • Controllers are used for linking the model to the view.

 

Foundation Framework

Defines the base layer of Objective-C classes.

Provides a small set of basic utility classes.

Support Unicode strings, object persistence, and object distribution.

Provide a level of OS independence, to enhance portability across iOS and Mac OS apps.

Includes the root object class, classes representing basic data types such as strings and byte arrays, collection classes for storing other objects, classes representing system information such as dates, and classes representing communication ports.

AppKit.framework

AppKit also called as Application Kit Framework contains objects needed to implement graphical, user interface such as windows, buttons, text fields, Tables etc.

Application Kit Framework allows developers to use Interface Builder for creating Outlets and Actions or alternatively create and control objects through code.

Classes (Such as NSView or NSTableView etc) defined in Application Kit Framework can be subclassed and custom behavior can be written

CoreData.framework   

Supports Object Graph management and persistence for foundation and Cocoa Application. Part of the Cocoa Framework and is one of the important framework used for creating Cocoa Applications. Provides means to open a file containing an archive of objects and a reference to atleast one root object


Core Animation

Core Animation is framework to support the following

  1. Graphics rendering
  2. Animation to animate views and other visual elements in a Cocoa Application
  3. Handles the drawing part of each animation and developers are expected to provide the start and end point of the animation.
  4. Coreanimation is tightly coupled with the Appkit.

Core Graphics

C-based APIs that is based on Quartz advanced drawing engine. Provides low-level lightweight 2D rendering

Supports

  1. Transformations
  2. Color Management
  3. Patterns
  4. Gradients and Shadings
  5. Image Data Management
  6. Image Creation
  7. PDF Document Creation etc

Core Location

Used in determining the current location of a device. Has a geocoder object to convert latitude and longitude to a user friendly description of that location such as Street, City and Country etc

Core Media

Core Media provides a low level C interface for managing and playing audio-visual media in your application

Core Text

Has APIs for handling fonts, character to glyph conversion.

Supports AAT (Apple Advanced Typography) text features that help access common OpenType Layout Tags

CoreAudio.framework   

Has low-level APIs used for interaction with the hardware. Helps communicate with the audio driver plug-ins. Interacts with the external devices using Hardware Abstraction layer

CoreAudioKit.framework

Used for creating a Cocoa User Interface for Audio Units

CoreFoundation.framework      

Provides fundamental software services useful to application services and environments.

Provides abstraction to common datatypes. Facilitates internationalization, XML property lists, URL Resource access

CoreMIDI.framework      

Provides APIs for communicating with Musical Instrument Digital Interface devices

CoreMIDIServer.framework  

Contains interfaces for creating MIDI drivers to be used by the system.

CoreMediaIO.framework

Contains interfaces of the Device Abstraction Layer (DAL) used for creating plug-ins that can access media hardware.

CoreVideo.framework

Partitions the processing into discrete steps making it simpler for developers to access and manipulate individual frames without having to worry about translating between data types such as QuickTime. It also provides buffer and buffer pool support for Core Media.

CoreWLAN.framework   

Contains Objective-C APIs for querying AirPort interfaces and choosing networks.


Carbon.framework

C based application programming interface for the Mac Operating System

Carbon is no more supported in OS X 10.8

All applications developed under Carbon has or will eventually move to Cocoa Frameworks.

AddressBook.framework

 Provides access to the Address Book Database (The Database that stores Mac User’s contacts).

AddressBook framework has APIs for accessing contacts and making changes to the Addressbook database such as adding a new contact from code.

WebKit.framework

Webkit framework helps display web content inside a Cocoa Application using WebViews. The Webkit framework helps implement web browser features in a Cocoa Application

Accounts.framework

Provides access to user accounts stored in the Accounts Database. Account stores the login credentials of a particular service (e.g: Twitter) which can be used for authentication for the services.

Note: Developers are not responsible for storing account logins rather the end user can grant access for the app to use their login credentials

Audio Video Bridging Framework

Used for enhancing quality of service and guaranteed latency and bandwidth for media streams over an AVB network. Provides access to entity discovery and control protocols over Ethernet network

Event Kit Framework

Access to users calendar, reminders events.

Adding new events to users calendar

Prior to 10.8 CalendarStore framework was used for creating events and accessing event from iCal

Game Kit

Supports the following

1.     Friends, Anonymous players

2.     Multiplayer game support

3.     Leaderboards- Storing and retrieving players score from Game Center

4.     Tracking Achievements in a game

5.     Peer-to-peer connectivity

6.     Ingame voice chats

More details on  Game Kit programming is available at

https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/GameKit_Guide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008304

GLKit

Provides library to create an OpenGL application. Supports texture data and shader effects.

AGL.framework

AGL or Apple Graphics library is the OpenGL implementation in Mac OSX. Using AGL rendering contexts can be created and destroyed.

AVFoundation.framework

One of the framework to play and create time-based audio visual media. Provides an Objective C interface. Videos can be captured realtime and manipulated.

Accelerate.framework

To be used in computational intensive applications. The accelerate framework contains a set of high performance vector accelerated libraries. Using the framework developers can perform vector based operations without using the low-level vector instructions.

Accelerate framework has support for the following

  1. Image processing
  2. Digital signal processing
  3. Linear Algebra

AppKitScripting.framework

The AppKitScripting framework is deprecated and developer.apple.com suggests to use AppKit framework instead.

AppleScriptKit.framework 

Contains interfaces to create AppleScript Plugins

AppleScriptObjC.framework

Contains objective C extensions for creating AppleScript plug-ins

Automator.framework

Using Automator framework developers can run a workflow in applications. Actions can be created which when loaded and run performs a specific task.

Workflow is a sequence of actions. In workflows output of one action is fed as input to the next action.

Social.framework

Has APIs for sending requests to supported social networking services. Has APIs for retrieving information to integrate users social network account in a custom app.

Can create a network session, get the activity feed for a user, make a new post on behalf of a user, Has templates for creating HTTP requests etc

VideoToolbox.framework

Has APIs for video compression and decompression. Has APIs for conversions between raster image formats stored in Core Video Pixel buffers.

vecLib.framework

Abstracts the vector processing capability for executing appropriate instructions for processor available at runtime. By using this framework the code does not have to deal with differences in vector instruction available for different architectures

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Recent Posts


Hit Counter provided by technology news