Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC

Getting Started with Apple Applications

Technology Overview

Apple publishes a variety of applications for the Macintosh platform, many of which are distributed free with Macintosh computers. Some of these applications have APIs that let you create third-party plug-ins to enhance their functionality. Others import and export data in Apple-defined formats, letting your applications exchange data with them.

If you are a plug-in developer, you can:

  • Create plug-ins for iMovie, Apple’s user-level video editing software, to add new title formats, video effects, and video transitions

  • Create a visual effect plug-in for either the Macintosh or the Windows version of iTunes, Apple’s music management software, that presents visual effects while music is playing

Plug-ins for iMovie and iTunes are written in C.

If you are a content developer, you can

  • Create new widgets for Dashboard, an enviroment designed to keep useful information at your fingertips. Dashboard widgets are built using standard web technologies, like HTML, CSS, and JavaScript.

  • Create new channels for Sherlock, Apple’s search technology, to provide built-in interfaces for Web-based search engines. Sherlock channels are written in a combination of XML and JavaScript.

If you are a hardware developer, you can build XML printing preset files for iPhoto, Apple’s still photo management software, to enhance its compatibility with your printer. Preset files for iPhoto are written in XML.

If you are an application developer, your application can:

  • Access the data in AddressBook, Apple’s centralized database for the user’s contact and other personal information

  • Import and export projects to and from Final Cut Pro, Apple’s professional video editing software, using the Final Cut Pro XML Interchange Format

  • Exchange documents with Keynote, Apple’s presentation software, using the Keynote XML File Format (APXL)

Start Here

If you are working in procedural C, read Carbon Overview. It introduces you to the C architecture of the Mac OS and gets you started writing applications in C. If you are working in Cocoa, Apple’s object-oriented programming environment, read Cocoa Fundamentals Guide to learn about the concepts behind Cocoa and get started with Cocoa development.

If you are creating a Dashboard widget, you should be familiar with the web technologies present in Web Kit, the underlying technology behind Dashboard. About Safari JavaScript discusses using JavaScript in Web Kit and, by extension, Dashboard widgets.

To link your application with AddressBook, you need to add C or Objective-C code to it. To exchange data with Keynote or Final Cut Pro, your application needs to be able to import or export XML files in the required format. Apple provides C functions in Mac OS that help your code parse XML.

If your new or existing application is going to exchange data with Keynote or Final Cut Pro, you need to understand the facilities that Apple provides to parse XML. Start by reading Introduction to XML to understand the XML syntax and learn how to call functions in the Mac OS that extract data from XML files.

Choose a Learning Path

Regardless of whether you plan to develop a plug-in for a Macintosh application or add data-exchange code to your own application, you will need to choose a suitable programming environment. To learn about Apple’s recommended programming tool set for Mac OS, read the ADC topic page for XCode. It describes the features of Xcode and tells you where to get the software you need.

Enhancing an Apple Application With a Plug-In or Widget

  • If you are creating a plug-in for iMovie, read iMovie Plug-ins to learn some of the ways you can enhance Apple’s application by designing and installing plug-in code. You’ll also learn the different requirements for title, transition, and effect plug-ins.

  • If you are creating a new widget, either as an add-on for an existing application or as a new stand-alone application, read Dashboard Tutorial to learn how to create and add useful features to a widget.

  • If you are creating a new channel for Sherlock, read Sherlock Channels to understand the architecture of Sherlock channels, how to build them, and how to direct new channels to your web services.

  • If you are creating a visual effect plug-in for iTunes, and you are programming for Mac OS, read Technical Note TN2016, iTunes Visual Plug-ins, to understand the general structure of a visual effect plug-in and learn how iTunes discovers and registers it. Windows developers should read Technical Note TN2098, iTunes Visual Plug-ins for Windows.

Exchanging Data With an Apple Application

  • If you want your application to access user data stored in AddressBook, read Address Book Programming Guide. It describes the Mac OS Address Book and provides references in both Procedural and Objective C. If you are working in Cocoa, you should also read Address Book Objective-C Framework Reference to learn about the Objective-C framework where address data is stored.

  • If you want your application to import and export projects to and from Final Cut Pro, read the document Final Cut Pro XML Interchange Format to learn about the interchange format and see examples of three possible applications—enhancing a batch list, simplifying subtitling, and helping users choose effect parameters.

  • If you want your application to exchange documents with Keynote, read Developer Opportunities Using Keynote and APXL to learn how your application can use Keynote’s display capabilities. You’ll also find several links to more detailed technical documents, including a link to the formal APXL definition.

Writing a Printer Preset File for iPhoto

If you are creating a printer preset file for iPhoto, read Creating Printing Presets for iPhoto to learn about the file structure, which is simply a text file written in XML, and see a sample listing.

Next Steps

The Apple Applications Reference Library links to several high-level resource pages, which you can bookmark for easy access.

  • Guides

    Conceptual and how-to information for Apple applications.

  • Reference

    Focused, detailed descriptions in reference format for Apple applications.

  • Release Notes

    Late-breaking news and highlights of new or changed features in the latest releases of Address Book and Sherlock.

  • Sample Code

    Sample applications demonstrating several techniques for communicating with Apple applications.

  • Technical Notes

    Technically detailed documents on issues related to Apple applications.

  • Technical Q&As

    Programming tips, code snippets, and FAQs by Apple’s support engineers.

  • Mailing Lists

    The Carbon Development List (carbon-dev), in Apple Mailing Lists, is an excellent place to discuss programming issues with fellow Carbon developers.

    The Dashboard Development List (dashboard-dev) is a list devoted to issues facing widget developers.

Last updated: 2006-05-23

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.