Xcode is an integrated development environment from Apple, with which you can write programs for Mac OS X and iOS. It is available only for Mac OS X. Xcode is primarily intended for C, C and Objective -C programming with the Cocoa framework, due to its modularity, but you might as well write programs in other languages ​​(such as Java, Ruby, Perl or Pascal ).

The application Xcode is part of the same software development package. To better distinguish the use of Apple " Xcode IDE " and the entire development package is usually called " Xcode Tools" (less frequently " Xcode package ").

Components of the Xcode Tools

The development Xcode Tools package consists of many different programs and tools ( in version 4.2, there are about 40, command-line tools not included); the most important are:

  • Xcode is the development environment in which to manage its projects and files, write code that can compile and debug programs. Furthermore, it is from here the API documentation to achieve.
  • Interface Builder (integrated in Xcode version 4.0 ) is used to create graphical interfaces of the Mac or iOS programs. This also links between UI elements and code (actions, variables) are produced.
  • Instruments (previously Xray ) is a tool for analyzing programs. You can use it to examine memory usage, file access or performance bottlenecks through eg its code. The technique is based on Sun's DTrace technology from OpenSolaris.
  • Xcode Core is a set of necessary libraries and tools, and provides the basis of Xcode dar. includes, for example, the compiler (GCC, LLVM, Clang ), debugger (GDB, LLDB, DTrace ), command-line tools ( otool, lipo, strip, make, yacc ) and version control systems (CVS, Subversion, Perforce, git ).
  • Dashcode is an IDE for widgets for the Dashboard of Mac OS X and web applications for iOS. The applications created with it are based on Web technologies like HTML, CSS and JavaScript. ( In the first few months you could create iPhone applications with Dashcode only until 2008, the Apple iPhone SDK published. )
  • Quartz Composer is used to create so-called "patches" for Apple's Quartz graphics technology. These patches are executed directly by the kernel and graphics come in many places in Mac OS X for use (screen saver, iChat effects).
  • IPhone Simulator (from Xcode 3.1) provides a limited iPhone simulator available can be tested without a real device with the iOS programs for the most part.

There are also a variety of other applications, such as for uploading apps or to create installation packages or icons.



The direct predecessor of Xcode was called " Project Builder ", the entire development package " Developer Tools". These names still originate from NeXTStep, the predecessor of Mac OS X. In some parts of this circumstance makes still noticeable; so Xcode project files always contain a file called project.pbxproj ( Project Builder Project X ), and many classes begin with the prefix NS ( Next Step ) on.

Developer Preview

Apple released at WWDC 2003, the Xcode 1.0 Developer Preview. There were two reasons: Firstly, as the beta software has been extensively tested by the developers, and secondly ran Project Builder no longer on Mac OS X 10.3, which was also distributed at WWDC.

Xcode 1.0 to 1.5

Xcode 1.0 was released in the fall of 2003 along with Mac OS X 10.3. Innovations compared with Project Builder include a new user interface, distributed compiling via distcc, and code completion (code named Sense ). In addition, Cocoa bindings were introduced ( bidirectional links between object attributes and UI elements ).

Xcode 1.1 and 1.2 addresses most of errors of previous versions; with Xcode 1.5 mainly CodeSense and debugging have been improved.

Xcode 1.0 and 1.5 can be downloaded today on the website of the developer portal by Apple.

Xcode 2.0 to 2.5

With Mac OS X 10.4 Apple also released Xcode 2.0. Significant changes are here Quartz Composer (see section " components of the Xcode Tools" ), support for Core Data (for persistent storage of data), and support for Ant addition was new the Apple Reference Library tool for reading both the online documentation on Apple's websites as well as locally stored documentation.

Xcode 2.1 was the first release that ran on PowerPC and Intel processors and could create itself so-called universal binaries, where PPC and Intel code was contained in a binary file. Also new were unit testing targets, conditional breakpoints, and better dependency checking.

Xcode 2.2 to 2.4 only offered various improvements and bug fixes, especially in the areas of compiling, debugging, and distributed compiling. Xcode 2.5 was 10.5 available for Mac OS X, and corrected a few errors from Xcode 2.4.

Xcode 3.0 to 3.2

In autumn 2007 gave Apple Xcode 3.0 released with Mac OS X 10.5. The most important changes in this release are support for Objective- C 2.0 with garbage collection, DTrace ( in the form of Instruments), refactoring, snapshots, and the ability to create up to four binaries (Intel and PowerPC with 32 and 64 -bit). Dashcode has been added in this release to the Xcode Tools.

Along with the iPhone SDK 2.0, Xcode 3.1 was released. This could create iPhone applications, compile, run, and debug. As compiler gcc 4.2 and LLVM - GCC 2.4 have been delivered, and Subversion 1.5 was also supported. Xcode 3.1 is the last version for Mac OS X 10.5.

With Mac OS X 10.6 Xcode 3.2 was released together. It provides static code analysis via clang compiler, support for Grand Central Dispatch (dynamic thread management ) and OpenCL.

Xcode 4.0 to 4.6

Xcode 4.0 was unveiled at WWDC 2010, and was until March 2011 in beta phase.

Xcode 4 has been completely redesigned. One of the biggest new features include a new user interface about the integration of Interface Builder, new compiler and debugger ( LLVM and LLDB ), and support for git. Xcode 4.0 was available for 3.99 euros in the Mac App Store for Snow Leopard to download.

Xcode 4.1 was the first version for Mac OS X 10.7 and was available as a free download for Lion users in the Mac App Store. The same version could be downloaded from the developer's site.

With Xcode 4.2 LLDB 3.0 was introduced, as well as support for Automatic Reference Counting has been added. Here, the compiler inserts (using code analysis ) and where necessary lines of code for memory management (retain and release) a; in this way the advantages of manual memory management and garbage collection are connected to each other. Xcode 4.2 is the latest version for Snow Leopard.

Xcode 4.3 combines the Xcode tools in a program that is in / Applications installed /. Thus, a simpler update through the Mac App Store is possible. The old directory for the Xcode Tools ( / Developer / ) is removed on demand.

Xcode 4.4 was released on July 25, 2012 along with OS X 10.8. It includes LLVM 3.2 and supported new versions of Objective- C and C .

Xcode 4.5 was released on September 19, 2012, and brought support for iOS 6.0.

Xcode 4.6 was released on January 28, 2013, and brought support for iOS 6.1.

Xcode 5.0

Xcode 5.0 was first introduced at the WWDC 2013 in connection with the presentation of OS X 10.9 and appeared on 18 September 2013. New are the support of iOS 7 and OS X 10.9. It includes LLVM 3.3 and LLDB. Support for the LLVM - GCC compiler and GDB debugger has been removed.