An Introductory Mac OS X Leopard Review: Developer Tools
Developer Tools Become Xcode
After working out a solid underlying architecture for developing future advancements, Apple released its first three versions of Mac OS X with the development tools ported from NeXT (below), along with support for Apple technologies such as AppleScript.
In Mac OS X, Apple made it much easier for applications to make themselves scriptable, by building support for AppleScript into the Cocoa Application Kit. Apple offered AppleScript Studio as a visual development toolset for building applications in AppleScript that made use of Cocoa application frameworks.
With Mac OS X 10.3 Panther, Apple incorporated AppleScript Studio and ProjectBuilder (above) into an integrated development environment called Xcode (below), using an entirely redesigned user interface. It offered Smart Lists, symbol browsing, integrated search results, build errors and warnings notifications, and a three pane window interface for browsing project code.
It also integrated Apple's documentation, featured code completion for Objective-C, and offered predictive compilation. A year later, apple released Xcode 1.5, which extended code completion for Java and AppleScript.
With Mac OS X 10.4 Tiger, Apple launched Xcode 2.0, with support for the new GCC 4.0 compiler and the new Quartz Composer visual programming language. A follow up update added support for WebObjects development and launched a new transition to Intel processors.
Apple announced that work to move to Intel would be much simpler for developers using its own Xcode tools rather than Metroworks' CodeWarrior. Motorola had acquired Metroworks in 1999, and discontinued CodeWarrior for the Mac OS as Apple announced its transition to Intel. Apple has since regularly updated its Xcode and other developer tools including Interface Builder, finally proving that it has discovered that, if it wants to be in control of its own platform, it has to manage and fully support its own development tools.
New In Leopard: Xcode 3.0
In Leopard, Apple added support in Xcode 3.0 (below) for the new Objective-C 2.0, which adds support for optional garbage collection, and 64-bit application development. It also incorporates basic version control with Project Snapshots, and offers a Research Assistant for looking up context sensitive documentation. An Organizer panel lets you drop other documentation and related files in for quick access; you can also bookmark items from Apple's included documentation in the Xcode sidebar, and subscribe to Apple's online documentation to automatically maintain the most up to date information.
Xcode also integrates with Sun's OpenSolaris DTrace tool, which Apple includes a graphical interface for in Leopard under the name Instruments (below, formerly code named X-Ray). Using an interface similar to GarageBand, Instruments can be set to dynamically trace memory allocation, processor use, file activity, and other factors as code runs, and compare how performance changes over time. It can also track mouse moves and keyboard clicks and then replicate a given action repeatedly to help determine why an inconsistent error is occuring. Instruments also introduces some novel, if odd, new user interface concepts, including a modal information bubble panel (below). The panel sports a Done box at the bottom, but if there's a lot of options, it can easily end up out of view behind the Dock or off the screen.
Instruments also features a full screen view that blows up just the instrument trace view without displaying a toolbar or any window controls, and a mini view that shrinks the application into a translucent panel (below). To recover normal view, you counterintuitively close the panel, much as closing a Screen Sharing or iChat Theater window ends the connection. In Leopard, closing a translucent panel sometimes means quit, and sometimes means "zoom."
Interface Builder 3.0 offers a larger library of objects that can be dragged into the interface of an application, making it easier for developers to implement the human interface features Apple has introduced in its own applications, including the path display used in the iTunes Store; the Smart Groups filters used in iTunes and the Finder; and the drag and drop image controls from iPhoto. The new version also adds the ability to create standard toolbars using the graphical interface (below).
DashCode 1.0 makes it easy for even entry level developers to create Dashboard widgets, starting from prebuilt widget templates based on a countdown, map, RSS feed, Quartz Composition, or a podcast or photocasts, or beginning from scratch to build something new. Below is an RSS feed template that requires little more than an RSS feed itself.
DashCode presents an interesting new workflow interface, which expands steps into items that may be tagged as required or optional, marked as completed by the user, and effectively breaks complex configuration tasks into simple steps with explanatory help icons along the way. DashCode deserves an article unto itself. Some comments were made on DashCode earlier in Road to Mac OS X Leopard: Dashboard, Spotlight and the Desktop.
Automator 2.0 makes it easy to set up workflows that draw upon prebuilt Automator Actions, or you can create your own in AppleScript or Cocoa using Xcode. Templates get you started in setting up workflows for working with files, iTunes audio (below), iPhoto libraries, or text related jobs, or you can start from scratch to automate anything.
Quartz Composer 3.0 is visual development tool for creating Quartz Compositions, which are used throughout Mac OS X as image filters, in graphic transitions and effects for iMovie and Keynote, in visualizations such as screen savers or visual effects for playback within iTunes or QuickTime, or dropped into other standalone applications using Interface Builder.
Quartz Composer uses colored Patches that are linked together by binding ports between them: pink renderers, green data processors, and blue external input patches. Input patches can listen to and generate keyboard and mouse clicks, scrolls, and movements or MIDI data and audio signals. Renders and processors can use OpenGL, Core Image, and Core Video to create and modify signals in complex ways. A collection of patches can be assembled into a macro; macros can also be nested.
A complex set of patches can incorporate user actions, music changes, or even pull data pulled from the web or an RSS feed to create interactive information displays and animated visualizations. Below is the Quartz Composition file used as the new Shell screen saver in Leopard, along with a live visualization.
Apple's developer tools are free with Mac OS X. NeXT charged $5000 per seat for its developer tools, on top of $799 licensing for the operating system. WebObjects cost even more; that too is thrown in for free. Additionally, Apple's tools also support unique development features related to Quartz and AppleScript that didn't exist for NeXT. Whether you're a serious programmer or just want to play around with the diverse collection of tools Apple throws in for free with Leopard, there's a lot to explore. Even if you're not a developer at all, you can be glad that it's now that much easier to develop new software for the Mac.
Don't forget to check out our earlier Road to Leopard series:
Road to Mac OS X Leopard: QuickTime, iTunes, and Media Features
Parental Controls and Directory Services
What's new in Mac OS X Leopard Server
Dashboard, Spotlight and the Desktop
Also check out earlier installments of our Leopard review series that followed our Road to Leopard series:
An Introductory Mac OS X Leopard Review: Meet Your New Desktop
An Introductory Mac OS X Leopard Review: Mail and iCal
An Introductory Mac OS X Leopard Review: Address Book and iChat
An Introductory Mac OS X Leopard Review: Core Graphics and the New UI