iPhone OS - Features

Xcode IDE

Source Editor

Write code using a professional editor with code completion, code folding, syntax highlighting, and message bubbles showing errors and breakpoints inline with your code.

Interface Builder

Design and test your user interface without writing a line of code, prototyping in minutes, then graphically connect your interface to the source within the Xcode editor.

iPhone Simulator

With the iOS SDK, Xcode can build, install, run, and debug Cocoa Touch applications in a Mac-based iPhone Simulator for a rocket-fast development workflow.

Integrated Build System

Handles the most complex builds, scaling to maximize the power of multi-core Macs, and will automatically sign, provision, and install iPhone apps onto a connected device.

Compilers

From within Xcode or Terminal, you have a complete set of open-source C, C++, and Objective-C compilers optimized by Apple, scalable for fast multi-core compiles.

Graphical Debugger

Debug your Mac, iPhone Simulator, or USB-connected iPhone application directly within the Xcode editor as data tips show variable values with a mouse hover.

Graphical Debugger

Static Analysis

Find bugs in your code before the application is even run by letting Xcode’s built-in static analyzer try out thousands of possible code paths in a few seconds, reporting potential bugs that could have remained hidden or nearly impossible to replicate. Learn more

Mini Debugger

All the power of the Xcode graphical debugger inside a translucent window meant to conserve space perfect for debugging full screen applications.

Organizer

Keep track of all your projects, scripts, web pages, and even attached devices; easily bind scripts or Automator workflows to key combinations to speed development tasks.

Snapshots

Before performing a big, risky operation on your project simply hit the Snapshot button to save your good state, confidently knowing you can easily restore it later.

Refactoring

Restructure your Objective-C application in a single operation, changing object hierarchies or names for all occurrences within your code and user interface designs.

Complete Documentation

Search for anything within Xcode and the documentation viewer will find it, either on your Mac or on the Apple Developer website.

Quick Help

Streamlined documentation on API usage, definitions, or sample code are available with a simple gesture as you work, without taking focus away from your code.

Source Control

Within the Xcode IDE, you’ll find a graphical repository browser with support for several popular SCM systems.

Instruments

Data Recording

Tell Instruments which application to analyze, which instruments to use, and simply click the big red button as data is collected and stored for further analysis.

Visual Comparison

As data is recorded and displayed over time it is easy to see relationships, both between different types of collected data, or the same data collected over multiple runs.

Tools Icon Visual Comparison

Drill Down

Inspect data spikes on the graph to see what code is executing at the time, then easily jump into Xcode to fix the problem.

Play Back

Create an ad-hoc test harness by recording a user interacting with your application, then play back the recording to see how your code changes affect the performance.

Instrument Library

Choose any of the bundled instruments in the library from low-level CPU, network, or file activity, to advanced graphics and user-event instruments.

Zombie Detection

Hard-to-find application errors and crashes can be trapped within Instruments when an application tries to access memory no longer available.

Source View

Drill down through data points, sort to find the most CPU-consuming methods, and view the code directly within the Instruments UI to pinpoint the problem.

Low-Overhead Sampling

Without launching the Instruments application it is possible to begin sampling performance data with a simple keypress, using very low overhead to collect high-fidelity information.

Custom Instruments

Create your own Instruments using DTrace and the Instruments custom builder.

Other Tools included in Mac OS X

Dashcode

An easy-to-use rapid development environment for web application and Dashboard widget creation, including a GUI parts library, JavaScript debugger, and more.

Shark

Precision performance analysis tool, samples data at the finest levels of detail.

Quartz Composer

Graphical design environment for producing spectacular graphical animations, capable of being run independently or within a Cocoa application.

Java

A complete Java development environment, including the JRE, javac compiler, ANT, Maven, and a unique Swing look at feel that matches the Mac.

Script languages

AppleScript, Perl, Python, Ruby.

Apple Event Bridge

Command and query applications from languages such as Objective-C, Ruby, and Python, using the same messaging architecture as AppleScript. Web development - Open source tools and frameworks such as Apache, PHP, and Ruby on Rails.

OpenGL tools

Including Driver Monitor, Profiler, and Shader Builder.

Audio tools

The AU Lab tool enables mixing and manipulation of audio streams.

Terminal 2

Access to the UNIX shell with tabs, colors, and Unicode support.

Subversion

Industry leading source control management.

UNIX tools

All the most popular command line tools such as make, autoconf, tar, and zip.

Editors

TextEdit, xed (Xcode’s editor), plus vi and emacs.

FileMerge

Compare, differentiate, and merge any text document.