Mac OS X is a modern operating system that combines a stable core with advanced technologies to help you deliver world-class products. The technologies in Mac OS X help you do everything from manage your data to display high-resolution graphics and multimedia content, all while delivering the consistency and ease of use that are hallmarks of the Macintosh experience. Knowing how to use these technologies can help streamline your own development process, while providing you access to key Mac OS X features.
Mac OS X Technology Overview is an essential guide for anyone looking to develop software for Mac OS X. It provides an overview of the technologies and tools that have an impact on the development process and provides links to relevant documents and other sources of information. You should use this document to do the following:
Orient yourself to the Mac OS X platform.
Learn about Mac OS X software technologies, why you might want to use them, and when.
Learn about the development opportunities for the platform.
Get tips and guidelines on how to move to Mac OS X from other platforms.
Find key documents relating to the technologies you are interested in.
This document does not provide information about user-level system features or about features that have no impact on the software development process.
New developers should find this document useful for getting familiar with Mac OS X. Experienced developers can use it as a road map for exploring specific technologies and development techniques.
This document has the following chapters and appendixes:
“Mac OS X System Overview” provides background information for understanding the terminology and basic development environment of Mac OS X. It also provides a high-level overview of the Mac OS X system architecture.
“Darwin and Core Technologies” describes the technologies that comprise the Darwin environment along with other key technologies that are used throughout the system.
“Graphics and Multimedia Technologies” describes the graphics foundations of the system, including the technologies you use for drawing to the screen and for creating audio and video content.
“Application Technologies” describes the development environments (like Carbon and Cocoa) and individual technologies (like Address Book) that you use to create your applications.
“User Experience” describes the technologies that your application should use to provide the best user experience for the platform. This chapter also describes some of the system technologies with which your software interacts to create that experience.
“Software Development Overview” describes the types of software you can create for Mac OS X and when you might use each type.
“Choosing Technologies to Match Your Design Goals” provides tips and guidance to help you choose the technologies that best support the design goals of your application.
“Porting Tips” provides starter advice for developers who are porting applications from Mac OS 9, Windows, and UNIX platforms.
“Command Line Primer” provides an introduction to the command-line interface for developers who have never used it before.
“Mac OS X Frameworks” describes the frameworks you can use to develop your software. Use this list to find specific technologies or to find when a given framework was introduced to Mac OS X.
“Mac OS X Developer Tools” provides an overview of the available applications and command-line tools you can use to create software for Mac OS X.
Apple provides a comprehensive suite of developer tools for creating Mac OS X software. The Xcode Tools include applications to help you design, create, debug, and optimize your software. This tools suite also includes header files, sample code, and documentation for Apple technologies. You can download the Xcode Tools from the members area of the Apple Developer Connection (ADC) website (http://connect.apple.com/). Registration is required but free.
For additional information about the tools available for working with Mac OS X and its technologies, see “Mac OS X Developer Tools.”
If you encounter bugs in Apple software or documentation, you are encouraged to report them to Apple. You can also file enhancement requests to indicate features you would like to see in future revisions of a product or document. To file bugs or enhancement requests, go to the Bug Reporting page of the ADC website, which is at the following URL:
http://developer.apple.com/bugreporter/
You must have a valid ADC login name and password to file bugs. You can obtain a login name for free by following the instructions found on the Bug Reporting page.
This document does not provide in-depth information on any one technology. However, it does point to relevant documents in the ADC Reference Library. References of the form “<title> in <category> Documentation” refer to documents in specific sections of the reference library.
For information about new features introduced in different versions of Mac OS X, see What's New In Mac OS X.
The following sections list additional sources of information about Mac OS X and its technologies.
When you install Xcode, the installer places the tools you need for development as well as sample code and developer documentation on your local hard drive. The default installation directory for Xcode is /Developer
but in Mac OS X v10.5 and later you can specify a custom installation directory if desired. (This document uses the term <Xcode> to represent the root directory of your Xcode installation.) The Installer application puts developer documentation into the following locations:
General documentation. Most documentation and sample code is installed in the <Xcode>/Documentation/DocSets
directory. All documents are available in HTML format, which you can view from any web browser. To view the documentation, open the Xcode IDE and choose Help > Show Documentation Window.
Additional sample code. Some additional sample programs are installed in <Xcode>/Examples
. These samples demonstrate different tasks involving Mac OS X technologies.
You can also get the latest documentation, release notes, Tech Notes, technical Q&As, and sample code from the ADC Reference Library (http://developer.apple.com/referencelibrary). All documents are available in HTML and most are also available in PDF format.
Many developers who are new to Mac OS X are also new to BSD, an essential part of the operating system’s kernel environment. BSD (for Berkeley Software Distribution) is based on UNIX. Several excellent books on BSD and UNIX are available in bookstores.
You can also use the World Wide Web as a resource for information on BSD. Several organizations maintain websites with manuals, FAQs, and other sources of information on the subject. For information about related projects, see:
Apple’s Open Source page (http://developer.apple.com/opensource/)
The FreeBSD project (http://www.freebsd.org)
The NetBSD project (http://www.netbsd.org)
The OpenBSD project (http://www.openbsd.org)
For more references, see the bibliography in Kernel Programming Guide.
Apple is the first major computer company to make open source development a key part of its ongoing operating system strategy. Apple has released the source code to virtually all of the components of Darwin to the developer community and continues to update the Darwin code base to include improvements as well as security updates, bug fixes, and other important changes.
Darwin consists of the Mac OS X kernel environment, BSD libraries, and BSD command environment. For more information about Darwin and what it contains, see “Kernel and Drivers.” For detailed information about the kernel environment, see Kernel Programming Guide.
Information about the Darwin open source efforts is available at http://developer.apple.com/darwin/ and at http://www.macosforge.org/.
Apple maintains several websites where developers can go for general and technical information about Mac OS X.
The Apple Macintosh products site (http://www.apple.com/mac) provides general information about Macintosh hardware and software.
The Apple product information site (http://www.apple.com/macosx) provides information about Mac OS X.
The ADC Reference Library (http://developer.apple.com/referencelibrary) features the same documentation that is installed with the developer tools. It also includes new and regularly updated documents as well as legacy documentation.
The Apple Care Knowledge Base (http://www.apple.com/support/) contains technical articles, tutorials, FAQs, and other information.
Last updated: 2009-08-14