Mac Technology Overview

OS X Frameworks

The OS X frameworks provide the interfaces you need to write software for Mac. Some of these frameworks contain simple sets of interfaces while others contain multiple subframeworks. Where applicable, the tables in this appendix list the 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.

System Frameworks

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

Provides functions and classes that reduce the effort required to create new shader-based apps or to port existing apps that rely on fixed-function vertex or fragment processing provided by earlier versions of OpenGL ES or OpenGL. See GLKit Framework Reference.

GLUT.framework

10.0

glut, GLUT

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

Contains interfaces for connecting to and managing computing cluster software.

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 OS X.

Accelerate Framework

Table A-2 lists the subframeworks of the Accelerate framework (Accelerate.framework). If you are developing apps for earlier versions of OS X, vecLib.framework is available as a standalone framework.

Application Services Framework

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

Table A-3 Subframeworks of the Application Services framework

Subframework

Description

ATS.framework

Deprecated in OS X v10.8. Use CoreText.framework instead.

ColorSync.framework

Contains interfaces for color matching using ColorSync.

HIServices.framework

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

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 A-4 lists the subframeworks of the Automator framework (Automator.framework).

Table A-4 Subframeworks of the Automator framework

Subframework

Description

MediaBrowser.framework

Contains private interfaces for managing Automator plug-ins.

Carbon Framework

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

Table A-5 Subframeworks of the Carbon framework

Subframework

Description

CarbonSound.framework

Deprecated in OS X v10.5. Use CoreAudio.framework 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

Deprecated in OS X v10.7. Use Cocoa.framework instead.

HTMLRendering.framework

Contains interfaces for rendering HTML content. The WebKit framework is the preferred framework for HTML rendering. See WebKit Framework.

ImageCapture.framework

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

Core Services Framework

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

Table A-6 Subframeworks of the Core Services framework

Subframework

Description

AE.framework

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

CarbonCore.framework

Contains interfaces for many legacy Carbon Managers. Most of the APIs in this framework are deprecated in OS X v10.8 (for more information, see Carbon Core Deprecations).

DictionaryServices.framework

Provides dictionary lookup capabilities.

FSEvents.framework

Provides a mechanism to notify clients about directories to re-scan to keep internal data structures up-to-date with the true state of the file system.

LaunchServices.framework

Contains interfaces for launching apps.

Metadata.framework

Contains interfaces for managing Spotlight metadata.

OSServices.framework

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

SearchKit.framework

Contains interfaces for the Search Kit.

Quartz Framework

Table A-7 lists the subframeworks of the Quartz framework (Quartz.framework).

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

QuartzFilters.framework

Contains Objective-C interfaces for managing and applying filter effects to a graphics context.

QuickLookUI.framework

Contains Objective-C interfaces for creating and managing a Quick Look preview panel, which is a UI object that displays preview items.

WebKit Framework

Table A-8 lists the subframeworks of the WebKit framework (WebKit.framework).

Table A-8 Subframeworks of the WebKit framework

Subframework

Description

WebCore.framework

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

Xcode Frameworks

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. Table A-9 lists the frameworks that are located in this directory.

Table A-9 Xcode frameworks

Framework

First available

Prefixes

Description

XCTest.framework

Xcode 5

XC

Interfaces for implementing unit tests in Objective-C.

System Libraries

Some specialty libraries at the BSD level are not packaged as frameworks. Instead, 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 the /usr/include directory.

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 OS X. If your software is linked to a specific version, that version might not always be available on the user’s system.