An application running on OS X sometimes needs to communicate with another application. That other application could be on the same computer or a different one. For various reasons, it might want to tell another application to open a document or it might want to run a program as a subprocess. A user might want the application to transfer data to another application. Or the application might want to make its services available to users regardless of the application they’re currently using.

OS X provides a range of programmatic interfaces and services that enable these and others types of communication. The core Cocoa frameworks, Foundation and AppKit, have classes that support the following features:

In addition, the XML-RPC and SOAP technologies enable remote procedure calls from applications or AppleScript scripts.

Start Here

Want to get familiar with the fundamentals?

To take advantage of the technologies and programming interfaces for interapplication communication, you should become familiar with basic Cocoa concepts, such as protocols, delegation, property lists, and notifications. Read Cocoa Fundamentals Guide to acquire this essential knowledge.

Prefer to learn by example?

Go In Depth

Transferring Data Between Applications

Implementing Application Services

Accessing Workspace Services

Running Subprocesses and Piping Data Between Processes

Remote Messaging and Procedure Calls

Uniform Type Identifiers

Ready for More?

The Snow Leopard Reference Library holds plenty more resources that make you job easier. To narrow the list of resources, you can set filters to focus on specific resource types (such as guides or sample code) or on specific topics (such as user experience or data management).