< Previous PageNext Page > Hide TOC

The Xcode Environment

Xcode is a suite of software development tools used to create applications that run on Mac OS X and iPhone OS. This suite includes applications, command-line tools, frameworks, and libraries you use to develop software products. The centerpiece of the suite is the Xcode application, which provides an elegant and powerful user interface for creating and managing software development projects.

In addition to the Xcode application, several other applications help you in your software development tasks, including:

This chapter describes the major areas of the Xcode environment.

In this section:

iPhone Simulator
Class and Data Modeling
Source Code Indexing
Source Code Editing
User-Interface Design
Build System
Performance Analysis
Source Management


iPhone Simulator

iPhone Simulator facilitates the development of iPhone applications on your Mac. With the simulator you can develop and test your application in an integrated environment, using your screen, keyboard, and mouse. Once you’ve ironed out design problems, you can test your application on devices to make sure the user interface works as expected and that your code performs well on actual hardware.

To learn more about the iPhone simulation environment, see Using iPhone Simulator.

Class and Data Modeling

Xcode provides powerful and flexible class and data modeling tools. The class modeler helps you explore and understand the classes in your project, whether they’re written in Objective-C or C++. It allows you to see class relationships and categories (in Objective-C code). The data modeler lets you manage Core Data entities and relationships between them. Core Data lets you manage the relationships and persistence of managed objects, whose backing store is usually a database or a file.

To learn more about the Xcode modelers, see:

Source Code Indexing

Source code indexing (known as Code Sense) allows Xcode to assist you in working with symbols. Source code indexing allows the Xcode text editor to identify element types in your code; for example, class names, constants, instance variables, and so on. Xcode creates an index of the symbols your project uses, which is used by several components, such as the text editor and the Research Assistant.

See “Code Sense” in Xcode Project Management Guide to learn more.

Source Code Editing

The Xcode text editor allows you to edit your source code as well as any text file, including XML and HTML files. The text editor uses source code indexing to provide several features, including code completion.

Xcode helps you edit several files at once through refactoring. Refactoring allows you to make structural changes to your code that don’t affect its functionality and behavior, such as renaming a class.

For more information see:

User-Interface Design

One of the most important steps in developing your application is designing its user interface. Xcode includes a graphical user-interface design tool that allows you to lay out your application’s controls in the way they appear to your application’s user. You also connect controls to other controls or to controller objects, following the Model-View-Controller paradigm that drives Mac and iPhone application development. Your user-interface designs are saved as nib files that your application loads at runtime.

To learn more about user-interface design, see:

Build System

Xcode includes a powerful build system used to create a wide variety of software products, including applications, frameworks, and plug-ins. Xcode lets you customize your build process through build phases (or build steps) and build configurations (or build flavors, such as Debug and Release).

When building large projects, you may want to leverage the power of multiple Macs, which may include your coworkers’ workstations or your organization’s build-server farms. With distributed builds, you can harness the power of a few iMac computers or a group of Xserve servers.

To learn more about the Xcode build system, see:

Performance Analysis

You carry out performance analysis and tuning on your application to ensure that it uses your customer’s computer or device as efficiently as possible. Part of this analysis and tuning is finding and eliminating memory leaks, which may cause a computer or device to operate slowly and the system to shut down your application.

Performance analysis can be software centric or hardware centric. Xcode supports both kinds of performance analysis. For details, see:

Source Management

Xcode provides two ways to safeguard your code: source control and snapshots. Source control lets you share your work with other developers, while keeping the code safe in an administered server. Snapshots allow you to revert your code to a previous state at a particular point in your development process.

To learn about source control and snapshots, see Xcode Source Management Guide.



< 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.