< Previous PageNext Page > Hide TOC

The Xcode Tools

The Xcode suite is made up of several applications and command-line tools whose purpose is to provide an easy-to-use, flexible, and powerful development environment. This chapter describes the major tools that make up the suite.

In this section:

The Xcode Application
Interface Builder
Instruments
Shark
PackageMaker
GCC and GDB


The Xcode Application

You use Xcode to organize and edit your source files, view documentation, build your product, debug your code, and optimize your product’s performance. Xcode is a highly customizable integrated development environment (IDE) with many features that let you create a pleasant and efficient working environment.

The center of your software development efforts is the project. An Xcode project groups the source files, libraries, media, and other resources needed to build your product. The most visible type of software product you can create with Xcode is the application. However, you can also develop Automator actions, command-line tools, frameworks, plug-ins, and kernel extensions.

To learn more about the Xcode application, see Xcode Workspace Guide.

Interface Builder

The Interface Builder application helps you design the user interfaces of your applications. With this application, you create your user interface by picking controls from a library of configurable elements and arranging them with the help of lay out guides. You also connect these elements with each other and to “action” methods to form a graph of user interface objects that define your application’s user experience. The files that store these object graphs are called nib files. At runtime, your application loads nib files to reconstitute the user interface you designed. This makes it easy to design and troubleshoot user interfaces because the difficult task of positioning each control and connecting it to the appropriate methods in your source code is done through an elegant and effective graphical user interface.

To learn more about Interface Builder, see Interface Builder User Guide.

Instruments

The Instruments application lets you trace and profile your application as it runs. Instruments also traces most system components in Mac OS X. In this way, Instruments helps you understand the behavior of both user programs and the operating system.

Note: On iPhone OS you can profile and trace only your applications, not the operating system.

To learn more about Instruments, see Instruments User Guide.

Shark

The Shark application lets you carry out in-depth hardware-based performance analysis. Shark profiles the system while your code runs to find out where time is being spent. It can also produce profiles of hardware and software performance events, such as cache misses, virtual memory activity, memory allocations, function calls or instruction dependency stalls. This information is an invaluable first step in your performance tuning task, so you can see which parts of your code or the operating system are the bottlenecks.

In addition to showing you where time is being spent, Shark can give you advice on how to improve your code. Shark is capable of identifying many common performance pitfalls and visually present the costs of these problems to you.

To learn more about Shark, see Shark User Guide.

PackageMaker

The PackageMaker application allows you to create an installation package, which is used to deliver your product to your customer. Your customer opens your installation package with the Installer application, which places the package’s payload in the appropriate locations in your customer’s file system.

PackageMaker lets you specify installation requirements to ensure that the product is installed only on systems that meet those requirements, such as a specific amount of available random-access memory (RAM) or free disk space, a particular Mac OS X release, the presence of particular components or applications, and so forth.

Note: To deliver your iPhone applications to customers, you don’t use PackageMaker. Instead, you upload your application to the iPhone Dev Portal, where it’s made available to customers through the App Store. Go to the iPhone Dev Portal for details.

To learn more about PackageMaker, see PackageMaker User Guide.

GCC and GDB

GCC and GDB are open-source tools Xcode uses to compile and debug your code. However, instead of a command-line interface to them, Xcode provides an elegant graphical interface that makes their use more intuitive.

To learn more about GCC and GDB, see the Reference Library > Tools > Compiling & Debugging category.



< Previous PageNext Page > Hide TOC


© 2009 Apple Inc. All Rights Reserved. (Last updated: 2009-01-06)


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.