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

Tools Overview

Mac OS X includes all the tools, frameworks, and documentation you need to create fantastic applications for the Mac. Xcode is the same professional developer toolset used by Apple to create Mac OS X, as well as many great Apple applications, and Xcode is included with every copy of Mac OS X. As new hardware or platforms are released, updated versions of Xcode to support these platforms will be available to download from the ADC website. Xcode's documentation is regularly updated using RSS downloads so you always have the latest information.

The Xcode IDE is optimized to create fantastic Cocoa applications, but it also supports an open, extensible architecture that is great for developing portable UNIX tools using the GCC compiler, experimenting with the latest script languages, and building rich Web-based applications. Bundled are industry-leading analysis tools such as Instruments that make it even easier to maximize the 64-bit and multi-core hardware of the latest Macs.

Xcode

The Xcode IDE integrates most of the tools that you use for day-to-day development into a single customizable interface. Xcode features, such as ZeroLink, Fix and Continue, and distributed builds, decrease turnaround time and shorten the development cycle. Code Sense increases productivity by providing easy access to information about your code. Xcode also uses a safe refactoring model, so you can feel comfortable making major changes to your source files. File Merge lets you preview the results of the refactoring, and even take an automatic snapshot of your code so that you can easily undo the changes if necessary.

Underlying the Xcode application is a solid foundation of industry-standard tools, including GCC and the GNU Debugger (GDB). Xcode is 64-bit, garbage collected, and tuned for many processor cores, making it fast, efficient, and scalable.

Xcode's Organizer is great for community projects that use arbitrary build systems such as autoconf, make, and ant. It also supports arbitrary types of programs and languages, such as Ruby, Python, UNIX, Fortran, Java and WebObjects, as well as Web and Server projects. Organizer gives you quick access to frequently used files and projects, and allows for scripted operations across many projects.

Interface Builder

Interface Builder is the easy-to-use graphical editor for designing and managing every aspect of Aqua-compliant graphical user interfaces. Interface Builder stores your user interface design in one or more resource files, as a set of interface objects and their relationships. Changes you make in the interface are automatically synchronized with Xcode. Interface Builder also includes support for Core Animation and Core Graphics, so you can drop-in animations and effects.

Objective-C 2.0

Objective-C 2.0 is the language used by many developers for native applications. It is garbage collected, freeing you from worrying about memory management. Objective-C programs can be built for 32- and 64-bit runtime architectures, and the language also supports properties, so you have more flexibility and less accessor code to write for variables.

Objective-C support is built into the tools. Xcode includes Objective-C refactoring, code completion, and syntax coloring. Interface Builder understands Objective-C, and lets you easily connect elements in your user interface to variables and methods in your source code. Core Data's modeling tools generate Objective-C code from your graphical data model. And the performance tools Shark and Instruments include garbage collection monitors.

Performance Tools

Instruments allows you to monitor multiple performance aspects while your application is running. Instruments uses a timeline to show a visualization of performance data, similar to the way GarageBand displays tracks. But it goes even further: with Instruments you can compare multiple runs, correlate measurements, and drill into the details of events. Instruments' user interface recording feature lets you replay scenarios many times, which is very useful for bugs that only seem to occur when you're not prepared to investigate them. Instruments supports reusable templates, so you can reuse your UI recordings, or even have your users help by sending in a sample run, complete with the results.

Under the hood, Instruments relies on DTrace, an open-source technology that supports system-wide tracing of arbitrary system behavior. DTrace is scriptable, and you can even build your own custom instruments for use in Instruments.

Xcode's other performance tools, such as Sampler and Shark, can help you debug your code, gather metrics, identify and eliminate bottlenecks in your code, and provide a mental model of the inner workings of your code, giving you the information you need to make your program run faster. Some of the performance tools are applications with graphical user interfaces while others are command-line utilities that must be invoked from the Terminal application or, less invasively, through ssh or telnet from a remote machine.

Package Maker

Once you have built, tested, and optimized your program, get it ready for distribution using Package Maker. The familiar Mac OS X installation sequence — with the Welcome, Read Me, and License Agreement screens — can be the packaging for your application as well, making it consistent with other apps on Mac OS X. You can provide the user with any number of choices, such as in what folder to install. If your application needs specific libraries to be present on the system, the installer can make that check and gracefully exit if necessary. Consistency and accuracy are important to your users, so use Package Maker to get your app installed correctly the first time.

Dashcode

Dashcode is a complete Widget development environment for building Widgets incorporating HTML, CSS, and JavaScript, with just a few clicks. Dashcode's library includes JavaScript parts, code snippets, and access to your photos, so you don't have to look far for inspiration. JavaScript is notoriously hard to debug, so Dashcode includes a JavaScript Debugger, complete with support for breakpoints and expression evaluation.

Mac OS X's development tools combine a high-performance development environment with a friendly user interface to deliver Mac OS X native applications. By using the Xcode IDE, Interface Builder, Xcode's performance and optimization tools, and Dashcode, you can dramatically decrease the development time needed to create high-quality applications.

For news, updates and links to other ADC content related to Tools, return to the Tools topic page.

Posted: 2007-10-26