< Previous PageNext Page > Hide TOC

Mac OS X Frameworks

This appendix contains information about the frameworks of Mac OS X. These frameworks provide the interfaces you need to write software for the platform. Some of these frameworks contain simple sets of interfaces while others contain multiple subframeworks. Where applicable, the tables in this appendix list any key prefixes used by the classes, methods, functions, types, or constants of the framework. You should avoid using any of the specified prefixes in your own symbol names.

In this section:

System Frameworks
Xcode Frameworks
System Libraries


System Frameworks

Table B-1 describes the frameworks located in the /System/Library/Frameworks directory and lists the first version of Mac OS X in which each became available.

Table B-1  System frameworks

Name

First available

Prefixes

Description

Accelerate.framework

10.3

cblas, vDSP, vv

Umbrella framework for vector-optimized operations. See “Accelerate Framework.”

AddressBook.framework

10.2

AB, ABV

Contains functions for creating and accessing a systemwide database of contact information.

AGL.framework

10.0

AGL, GL, glm, GLM, glu, GLU

Contains Carbon interfaces for OpenGL.

AppKit.framework

10.0

NS

Contains classes and methods for the Cocoa user-interface layer. In general, link to Cocoa.framework instead of this framework.

AppKitScripting.framework

10.0

N/A

Deprecated. Use AppKit.framework instead.

AppleScriptKit.framework

10.0

ASK

Contains interfaces for creating AppleScript plug-ins and provides support for applications built with AppleScript Studio.

AppleShareClient.framework

10.0

AFP

Deprecated. Do not use.

AppleShareClientCore.framework

10.0

AFP

Contains utilities for handling URLs in AppleShare clients.

AppleTalk.framework

10.0

N/A

Deprecated. Do not use.

ApplicationServices.framework

10.0

AE, AX, ATSU, CG, CT, LS, PM, QD, UT

Umbrella framework for several application-level services. See “Application Services Framework.”

AudioToolbox.framework

10.0

AU, AUMIDI

Contains interfaces for getting audio stream data, routing audio signals through audio units, converting between audio formats, and playing back music.

AudioUnit.framework

10.0

AU

Contains interfaces for defining Core Audio plug-ins.

Automator.framework

10.4

AM

Umbrella framework for creating Automator plug-ins. See “Automator Framework.”

CalendarStore.framework

10.5

Cal

Contains interfaces for managing iCal calendar data.

Carbon.framework

10.0

HI, HR, ICA, ICD, Ink, Nav, OSA, PM, SFS,SR

Umbrella framework for Carbon-level services. See “Carbon Framework.”

Cocoa.framework

10.0

NS

Wrapper for including the Cocoa frameworks AppKit.framework, Foundation.framework, and CoreData.framework.

Collaboration.framework

10.5

CB

Contains interfaces for managing identity information.

CoreAudio.framework

10.0

Audio

Contains the hardware abstraction layer interface for manipulating audio.

CoreAudioKit.framework

10.4

AU

Contains Objective-C interfaces for audio unit custom views.

CoreData.framework

10.4

NS

Contains interfaces for managing your application’s data model.

CoreFoundation.framework

10.0

CF

Provides fundamental software services, including abstractions for common data types, string utilities, collection utilities, plug-in support, resource management, preferences, and XML parsing.

CoreMIDI.framework

10.0

MIDI

Contains utilities for implementing MIDI client programs.

CoreMIDIServer.framework

10.0

MIDI

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

CoreServices.framework

10.0

CF, DCS, MD, SK, WS

Umbrella framework for system-level services. See “Core Services Framework.”

CoreVideo.framework

10.5

CV

Contains interfaces for managing video-based content.

DirectoryService.framework

10.0

ds

Contains interfaces for supporting network-based lookup and directory services in your application. You can also use this framework to develop directory service plug-ins.

DiscRecording.framework

10.2

DR

Contains interfaces for burning data to CDs and DVDs.

DiscRecordingUI.framework

10.2

DR

Contains the user interface layer for interacting with users during the burning of CDs and DVDs.

DiskArbitration.framework

10.4

DA

Contains interfaces for monitoring and responding to hard disk events.

DrawSprocket.framework

10.0

DSp

Contains the game sprocket component for drawing content to the screen.

DVComponentGlue.framework

10.0

IDH

Contains interfaces for communicating with digital video devices, such as video cameras.

DVDPlayback.framework

10.3

DVD

Contains interfaces for embedding DVD playback features into your application.

ExceptionHandling.framework

10.0

NS

Contains exception-handling classes for Cocoa applications.

ForceFeedback.framework

10.2

FF

Contains interfaces for communicating with force feedback–enabled devices.

Foundation.framework

10.0

NS

Contains the classes and methods for the Cocoa Foundation layer. If you are creating a Cocoa application, linking to the Cocoa framework is preferable.

FWAUserLib.framework

10.2

FWA

Contains interfaces for communicating with FireWire-based audio devices.

GLUT.framework

10.0

glut, GLUT

Contains interfaces for the OpenGL Utility Toolkit, which provides a platform-independent interface for managing windows.

ICADevices.framework

10.3

ICD

Contains low-level interfaces for communicating with digital devices such as scanners and cameras. See also, “Carbon Framework.”

InputMethodKit.framework

10.5

IMK

Contains interfaces for developing new input methods, which are modules that handle text entry for complex languages.

InstallerPlugins.framework

10.4

IFX

Contains interfaces for creating plug-ins that run during software installation sessions.

InstantMessage.framework

10.4

FZ, IM

Contains interfaces for obtaining the online status of an instant messaging user.

IOBluetooth.framework

10.2

IO

Contains interfaces for communicating with Bluetooth devices.

IOBluetoothUI.framework

10.2

IO

Contains the user interface layer for interacting with users manipulating Bluetooth devices.

IOKit.framework

10.0

IO, IOBSD, IOCF

Contains the main interfaces for developing device drivers.

JavaEmbedding.framework

10.0

N/A

Do not use.

JavaFrameEmbedding.framework

10.5

N/A

Contains interfaces for embedding Java frames in Objective-C code.

JavaScriptCore.framework

10.5

JS

Contains the library and resources for executing JavaScript code within an HTML page. (Prior to Mac OS X v10.5, this framework was part of WebKit.framework.

JavaVM.framework

10.0

JAWT, JDWP, JMM, JNI, JVMDI, JVMPI, JVMTI

Contains the system’s Java Development Kit resources.

Kerberos.framework

10.0

GSS, KL, KRB, KRB5

Contains interfaces for using the Kerberos network authentication protocol.

Kernel.framework

10.0

numerous

Contains the BSD-level interfaces.

LatentSemanticMapping.framework

10.5

LSM

Contains interfaces for classifying text based on latent semantic information.

LDAP.framework

10.0

N/A

Do not use.

Message.framework

10.0

AS, MF, PO, POP, RSS, TOC, UR, URL

Contains Cocoa extensions for mail delivery.

OpenAL.framework

10.4

AL

Contains the interfaces for OpenAL, a cross-platform 3D audio delivery library.

OpenGL.framework

10.0

CGL, GL, glu, GLU

Contains the interfaces for OpenGL, which is a cross-platform 2D and 3D graphics rendering library.

OSAKit.framework

10.4

OSA

Contains Objective-C interfaces for managing and executing OSA-compliant scripts from your Cocoa applications.

PCSC.framework

10.0

MSC, Scard, SCARD

Contains interfaces for interacting with smart card devices.

PreferencePanes.framework

10.0

NS

Contains interfaces for implementing custom modules for the System Preferences application.

PubSub.framework

10.5

PS

Contains interfaces for subscribing to RSS and Atom feeds.

Python.framework

10.3

Py

Contains the open source Python scripting language interfaces.

QTKit.framework

10.4

QT

Contains Objective-C interfaces for manipulating QuickTime content.

Quartz.framework

10.4

GF, PDF, QC, QCP

Umbrella framework for Quartz services. See “Quartz Framework”

QuartzCore.framework

10.4

CA,CI, CV

Contains the interfaces for Core Image, Core Animation, and Core Video.

QuickLook.framework

10.5

QL

Contains interfaces for generating thumbnail previews of documents.

QuickTime.framework

10.0

N/A

Contains interfaces for embedding QuickTime multimedia into your application.

Ruby.framework

10.5

N/A

Contains interfaces for the Ruby scripting language.

RubyCocoa.framework

10.5

RB

Contains interfaces for running Ruby scripts from Objective-C code.

ScreenSaver.framework

10.0

N/A

Contains interfaces for writing screen savers.

Scripting.framework

10.0

NS

Deprecated. Use Foundation.framework instead.

ScriptingBridge.framework

10.5

SB

Contains interfaces for running scripts from Objective-C code.

Security.framework

10.0

CSSM, Sec

Contains interfaces for system-level user authentication and authorization.

SecurityFoundation.framework

10.3

Sec

Contains Cocoa interfaces for authorizing users.

SecurityInterface.framework

10.3

PSA, SF

Contains the user interface layer for authorizing users in Cocoa applications.

SyncServices.framework

10.4

ISync

Contains the interfaces for synchronizing application data with a central database.

System.framework

10.0

N/A

Do not use.

SystemConfiguration.framework

10.0

SC

Contains interfaces for accessing system-level configuration information.

Tcl.framework

10.3

Tcl

Contains interfaces for accessing the system’s Tcl interpreter from an application.

Tk.framework

10.4

Tk

Contains interfaces for accessing the system’s Tk toolbox from an application.

TWAIN.framework

10.2

TW

Contains interfaces for accessing TWAIN-compliant image-scanning hardware.

vecLib.framework

10.0

N/A

Deprecated. Use Accelerate.framework instead. See “Accelerate Framework.”

WebKit.framework

10.2

DOM, Web

Umbrella framework for rendering HTML content. See “Web Kit Framework.”

XgridFoundation.framework

10.4

XG

Contains interfaces for connecting to and managing computing cluster software.

Mac OS X contains several umbrella frameworks for major areas of functionality. Umbrella frameworks group several related frameworks into a larger framework that can be included in your project. When writing software, link your project against the umbrella framework; do not try to link directly to any of its subframeworks.The following sections describe the contents of the umbrella frameworks in Mac OS X.

Accelerate Framework

Table B-2 lists the subframeworks of the Accelerate framework (Accelerate.framework). This framework was introduced in Mac OS X version 10.3. If you are developing applications for earlier versions of Mac OS X, vecLib.framework is available as a standalone framework.

Table B-2  Subframeworks of the Accelerate framework

Subframework

Description

vecLib.framework

Contains vector-optimized interfaces for performing math, big-number, and DSP calculations, among others.

vImage.framework

Contains vector-optimized interfaces for manipulating image data.

Application Services Framework

Table B-3 lists the subframeworks of the Application Services framework (ApplicationServices.framework). These frameworks provide C-based interfaces and are intended primarily for Carbon applications, although other programs can use them. The listed frameworks are available in all versions of Mac OS X unless otherwise noted.

Table B-3  Subframeworks of the Application Services framework

Subframework

Description

ATS.framework

Contains interfaces for font layout and management using Apple Type Services.

ColorSync.framework

Contains interfaces for color matching using ColorSync.

CoreGraphics.framework

Contains the Quartz interfaces for creating graphic content and rendering that content to the screen.

CoreText.framework

Contains the interfaces for performing text layout and display. Available in Mac OS X v10.5 and later.

HIServices.framework

Contains interfaces for accessibility, Internet Config, the pasteboard, the Process Manager, and the Translation Manager. Available in Mac OS X 10.2 and later.

ImageIO.framework

Contains interfaces for importing and exporting image data. Prior to Mac OS X v10.5, these interfaces were part of the CoreGraphics subframework.

LangAnalysis.framework

Contains the Language Analysis Manager interfaces.

PrintCore.framework

Contains the Core Printing Manager interfaces.

QD.framework

Contains the QuickDraw interfaces.

SpeechSynthesis.framework

Contains the Speech Manager interfaces.

Automator Framework

Table B-4 lists the subframeworks of the Automator framework (Automator.framework). This framework was introduced in Mac OS X version 10.4.

Table B-4  Subframeworks of the Automator framework

Subframework

Description

MediaBrowser.framework

Contains private interfaces for managing Automator plug-ins.

Carbon Framework

Table B-5 lists the subframeworks of the Carbon framework (Carbon.framework). The listed frameworks are available in all versions of Mac OS X unless otherwise noted.

Table B-5  Subframeworks of the Carbon framework

Subframework

Description

CarbonSound.framework

Contains the Sound Manager interfaces. Whenever possible, use Core Audio instead.

CommonPanels.framework

Contains interfaces for displaying the Font window, Color window, and some network-related dialogs.

Help.framework

Contains interfaces for launching and searching Apple Help.

HIToolbox.framework

Contains interfaces for the Carbon Event Manager, HIToolbox object, and other user interface–related managers.

HTMLRendering.framework

Contains interfaces for rendering HTML content. For Mac OS X version 10.2 and later, the Web Kit framework is the preferred framework for HTML rendering. See “Web Kit Framework.”

ImageCapture.framework

Contains interfaces for capturing images from digital cameras. This framework works in conjunction with the Image Capture Devices framework (ICADevices.framework).

Ink.framework

Contains interfaces for managing pen-based input. (Ink events are defined with the Carbon Event Manager.) Available in Mac OS X version 10.3 and later.

NavigationServices.framework

Contains interfaces for displaying file navigation dialogs.

OpenScripting.framework

Contains interfaces for writing scripting components and interacting with those components to manipulate and execute scripts.

Print.framework

Contains the Carbon Printing Manager interfaces for displaying printing dialogs and extensions.

SecurityHI.framework

Contains interfaces for displaying security-related dialogs.

SpeechRecognition.framework

Contains the Speech Recognition Manager interfaces.

Core Services Framework

Table B-6 lists the subframeworks of the Core Services framework (CoreServices.framework). These frameworks provide C-based interfaces and are intended primarily for Carbon applications, although other programs can use them. The listed frameworks are available in all versions of Mac OS X unless otherwise noted.

Table B-6  Subframeworks of the Core Services framework

Subframework

Description

AE.framework

Contains interfaces for creating and manipulating Apple events and making applications scriptable.

CarbonCore.framework

Contains interfaces for many legacy Carbon Managers. In Mac OS X v10.5 and later, this subframework contains the FSEvents API, which notifies clients about file system changes.

CFNetwork.framework

Contains interfaces for network communication using HTTP, sockets, and Bonjour.

DictionaryServices.framework

Provides dictionary lookup capabilities.

LaunchServices.framework

Contains interfaces for launching applications.

Metadata.framework

Contains interfaces for managing Spotlight metadata. Available in Mac OS X v10.4 and later.

OSServices.framework

Contains interfaces for Open Transport and many hardware-related legacy Carbon managers.

SearchKit.framework

Contains interfaces for the Search Kit. Available in Mac OS X version 10.3 and later.

Quartz Framework

Table B-7 lists the subframeworks of the Quartz framework (Quartz.framework). This framework was introduced in Mac OS X version 10.4.

Table B-7  Subframeworks of the Quartz framework

Subframework

Description

ImageKit.framework

Contains Objective-C interfaces for finding, browsing, and displaying images. Available in Mac OS X version 10.5 and later.

PDFKit.framework

Contains Objective-C interfaces for displaying and managing PDF content in windows.

QuartzComposer.framework

Contains Objective-C interfaces for playing Quartz Composer compositions in an application.

QuartzFilters.framework

Contains Objective-C interfaces for managing and applying filter effects to a graphics context. Available in Mac OS X version 10.5 and later.

Web Kit Framework

Table B-8 lists the subframeworks of the Web Kit framework (WebKit.framework). This framework was introduced in Mac OS X version 10.2.

Table B-8  Subframeworks of the Web Kit framework

Subframework

Description

WebCore.framework

Contains the library and resources for rendering HTML content in an HTMLView control.

Xcode Frameworks

In Mac OS X v10.5 and later, Xcode and all of its supporting tools and libraries reside in a portable directory structure. This directory structure makes it possible to have multiple versions of Xcode installed on a single system or to have Xcode installed on a portable hard drive that you plug in to your computer when you need to do development. This portability means that the frameworks required by the developer tools are installed in the <Xcode>/Library/Frameworks directory, where <Xcode> is the path to the Xcode installation directory. (The default Xcode installation directory is /Developer.) Table B-9 lists the frameworks that are located in this directory.

Table B-9  Xcode frameworks

Framework

First available

Prefixes

Description

CPlusTest.framework

10.4

None

Unit-testing framework for C++ code. In Mac OS X v10.4, this framework was in /System/Library/Frameworks.

InterfaceBuilderKit.framework

10.5

ib, IB

Contains interfaces for writing plug-ins that work in Interface Builder v3.0 and later.

SenTestingKit.framework

10.4

Sen

Contains the interfaces for implementing unit tests in Objective-C. In Mac OS X v10.4, this framework was in /System/Library/Frameworks.

System Libraries

Note that some specialty libraries at the BSD level are not packaged as frameworks. Instead, Mac OS X includes many dynamic libraries in the /usr/lib directory and its subdirectories. Dynamic shared libraries are identified by their .dylib extension. Header files for the libraries are located in /usr/include.

Mac OS X uses symbolic links to point to the most current version of most libraries. When linking to a dynamic shared library, use the symbolic link instead of a link to a specific version of the library. Library versions may change in future versions of Mac OS X. If your software is linked to a specific version, that version might not always be available on the user’s system.



< Previous PageNext Page > Hide TOC


© 2004, 2008 Apple Inc. All Rights Reserved. (Last updated: 2008-10-15)


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.