Apple details Leopard's expanded Instant Message framework
Apple is slowly publicizing some of Mac OS X Leopard's underlying features, most recently providing developers with an explanation of how the operating system's expanded Instant Message framework will allow them to access iChat 4.0 features from within their applications.
"One of the powerful capabilities that the Instant Message framework gives you is the ability to determine if a contact in a user's buddy list is online or not. You can also get the Address Book data for that contact as well as other status information," the company wrote in a technology overview on its developer website. "This information is collectively referred to as 'presence.' And once you tap into this presence data, your application can be notified when information about a contact changes."
iChat Theater, a new feature of iChat due in Leopard, will also allow applications to present audio and video content during an iChat conference. For example, developer's applications can present a slide show, a video feed, or 3D graphics, complete with sound, to one or more conference participants. This is made possible through the IMAVManager class at the heart of iChat Theater, which encapsulates some of iChat's most advanced features in an Objective-C class.
"IMAVManager works with the other classes in the Instant Message framework to enable you to build sophisticated conferencing capabilities into your application," Apple said. "For example, you can use IMService to determine who is available to participate in a chat, and then use IMAVManager to setup and run the iChat Theater presentation."
In addition to the Instant Message framework, developers will also be able to access iChat's many features through AppleScript, performing such activities as initiating a video chat or responding to an iChat event.
"With Leopard, iChat's scripting dictionary has been expanded to include nearly all of the iChat operations you can perform interactively with a keyboard and mouse," Apple wrote. "You can access this scripting functionality either from an application or directly from an AppleScript."
For example, the company said, service, account, and chat classes help identify a chat participant by his or her screen name, on a particular service (such as AIM, Jabber, or Bonjour), and in a specific type of chat (text, audio, or video). "This allows for sophisticated, high-level application control over iChat. Your application might run a script that starts a chat. Or you might write a script for determining if a specific person is online. Or something in-between."
More details are available in the technology overview on Apple's developer site.