Xcode
Encyclopedia
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store
Mac App Store
The Mac App Store is a digital distribution platform for Mac OS X applications developed by Apple Inc.. The platform was announced on October 20, 2010 at Apple's "Back to the Mac" event. Apple began accepting app submissions from registered developers on November 3, 2010 in preparation for its launch...

 for free for Mac OS X 10.7 (requires an Apple ID
Apple ID
Apple ID is an authentication system that Apple Inc. introduced for many of its products, such as iWork, the iTunes Store and the Apple Store. Apple ID serves as an all-in-one account that allows users access to a variety of Apple’s resources...

 (which as of 6-Oct-2011 requires a credit card to register)), and on the Apple Developer Connection
Apple Developer Connection
Apple Developer, formerly Apple Developer Connection or ADC, is Apple Inc.'s developer network. It is designed to make available resources to help software developers write software for the Mac OS X and iOS platforms...

 website for free to registered developers (though membership costs $99 per year) for Mac OS X 10.6. , Xcode version 3 is still available for free download from the Apple Developer Connection
Apple Developer Connection
Apple Developer, formerly Apple Developer Connection or ADC, is Apple Inc.'s developer network. It is designed to make available resources to help software developers write software for the Mac OS X and iOS platforms...

 website. Mac OS X install DVDs typically include a copy of Xcode, as well.

Composition

The main application of the suite is the integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 (IDE), also named Xcode. The Xcode suite also includes most of Apple's developer documentation, and Interface Builder
Interface Builder
Interface Builder is a software development application for Apple's Mac OS X operating system. It is part of Xcode , the Apple Developer Connection developer's toolset. Interface Builder allows Cocoa and Carbon developers to create interfaces for applications using a graphical user...

, an application used to construct graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

s.

The Xcode suite includes a modified version of free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 GNU Compiler Collection
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...

, and supports C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

, C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

, Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...

, Objective-C++, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

, AppleScript
AppleScript
AppleScript is a scripting language created by Apple Inc. and built into Macintosh operating systems since System 7. The term "AppleScript" may refer to the scripting system itself, or to particular scripts that are written in the AppleScript language....

, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

 and Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

 source code with a variety of programming models, including but not limited to Cocoa
Cocoa (API)
Cocoa is Apple's native object-oriented application programming interface for the Mac OS X operating system and—along with the Cocoa Touch extension for gesture recognition and animation—for applications for the iOS operating system, used on Apple devices such as the iPhone, the iPod Touch, and...

, Carbon
Carbon (API)
Carbon is one of Apple Inc.'s procedural application programming interfaces for the Macintosh operating system. It provides C programming language access to Macintosh system services...

, and Java. Third parties have added support for GNU Pascal
GNU Pascal
GNU Pascal is a Pascal compiler composed of a frontend to GNU Compiler Collection , similar to the way Fortran and other languages were added to GCC...

, Free Pascal
Free Pascal
Free Pascal Compiler is a free Pascal and Object Pascal compiler.In addition to its own Object Pascal dialect, Free Pascal supports, to varying degrees, the dialects of several other compilers, including those of Turbo Pascal, Delphi, and some historical Macintosh compilers...

, Ada, C#, Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

, Haskell
Haskell (programming language)
Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. In Haskell, "a function is a first-class citizen" of the programming language. As a functional programming language, the...

, and D. The Xcode suite uses the GNU Debugger as the back-end for its debugger
Debugger
A debugger or debugging tool is a computer program that is used to test and debug other programs . The code to be examined might alternatively be running on an instruction set simulator , a technique that allows great power in its ability to halt when specific conditions are encountered but which...

.

1.x series

Xcode 1.0 was released in fall 2003. Xcode 1.0 was based on Project Builder
Project Builder
Project Builder was an integrated development environment originally developed by NeXT for the NeXTSTEP operating system. It was rewritten and informally dubbed PBX while distributed by Apple Computer for software development on Mac OS X computer systems prior to Mac OS X v10.3...

, but had an updated UI
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

, ZeroLink, Fix & Continue, distributed build support, and Code Sense indexing.

The next significant release, Xcode 1.5, had better code completion and an improved debugger.

2.x series

Xcode 2.0 was released with Mac OS X v10.4
Mac OS X v10.4
Mac OS X v10.4 Tiger is the fifth major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers. Tiger was released to the public on 29 April 2005 for US$129.95 as the successor to Mac OS X Panther , which had been released 18 months earlier...

 "Tiger". It included the Quartz Composer
Quartz Composer
Quartz Composer is a node-based visual programming language provided as part of the Xcode development environment in Mac OS X for processing and rendering graphical data....

 visual programming language, better Code Sense indexing for Java, and Ant
Apache Ant
Apache Ant is a software tool for automating software build processes. It is similar to Make but is implemented using the Java language, requires the Java platform, and is best suited to building Java projects....

 support. It also included the Apple Reference Library tool, which lets you search and read online documentation from Apple’s website and local documentation installed on your machine.

Xcode 2.1 could create universal binaries
Universal binary
A universal binary is, in Apple parlance, an executable file or application bundle that runs natively on either PowerPC or Intel-manufactured IA-32 or Intel 64-based Macintosh computers; it is an implementation of the concept more generally known as a fat binary.With the release of Mac OS X Snow...

. It supported Shared Precompiled Headers
Precompiled header
In computer programming, a precompiled header is a technique used by some C or C++ compilers to reduce compilation time.-Overview:In the C and C++ programming languages, a header file is a file whose text may be automatically included in another source file by the C preprocessor by the use of a...

, unit testing targets, conditional breakpoints, and watchpoints. It also had better dependency analysis.

3.x series

Xcode 3.0 was released with Mac OS X v10.5
Mac OS X v10.5
Mac OS X Leopard is the sixth major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers. Leopard was released on 26 October 2007 as the successor of Tiger , and is available in two variants: a desktop version suitable for personal computers, and a...

 "Leopard". Notable changes since 2.1 include the DTrace
DTrace
DTrace is a comprehensive dynamic tracing framework created by Sun Microsystems for troubleshooting kernel and application problems on production systems in real time...

 debugging tool (now called Instruments
Instruments (application)
Instruments is an application performance analyzer and visualizer, integrated in Xcode 3.0 and later versions of Xcode. It is a developer tool included in Apple Mac OS X v10.5 and later versions of Mac OS X, built on top of the DTrace tracing framework from OpenSolaris and ported to Mac OS...

), refactoring support, context-sensitive documentation, and Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...

 2.0 with garbage collection
Garbage collection (computer science)
In computer science, garbage collection is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program...

. It also supports Project Snapshots, which provide a basic form of version control; Message Bubbles, which show build errors debug values alongside code; and building four-architecture fat binaries (32 and 64-bit Intel and PowerPC).

Xcode 3.1 was an update release of the developer tools for Mac OS X, and was the same version included with the iPhone SDK. It could target non-Mac OS X platforms, including iPhone OS 2.0. It included the GCC 4.2 and LLVM
Low Level Virtual Machine
The Low Level Virtual Machine is a compiler infrastructure written in C++ that is designed for compile-time, link-time, run-time, and "idle-time" optimization of programs written in arbitrary programming languages...

 GCC 4.2 compilers. Another new feature since Xcode 3.1 is that Xcode's SCM support now supports Subversion 1.5.

Xcode 3.2 was released with Mac OS X v10.6
Mac OS X v10.6
Mac OS X Snow Leopard is the seventh major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers.Snow Leopard was publicly unveiled on June 8, 2009 at the Apple Worldwide Developers Conference...

 "Snow Leopard" and will not install on any earlier version of Mac OS X. It supports static program analysis, among other features. It also drops official support for targeting versions earlier than iPhone OS 3.0. But it is still possible to target older versions, and the simulator supports iPhone OS 2.0 through 3.1. Also, Java support is "exiled" in 3.2 to the organizer.

Xcode 3.2.6 is the last version that can be downloaded for free for users of Mac OS X 10.6. Downloading it requires a free registration at Apple's developer site (but a paid developer program membership is not required).

4.x series

In June 2010 at the World Wide Developers Conference, Apple announced version 4 of Xcode during the Developer Tools State of the Union address. Version 4 of the developer tools consolidates the Xcode editing tools and Interface Builder into a single application, among other enhancements. A GM seed was posted on February 4, 2011; although it was only available as a download to registered iOS/Mac Developer Program members, it was leaked on numerous download websites. A second golden master seed was released to developers on March 3, 2011 in conjunction with the golden master seed of iOS 4.3. Apple released the final code for Xcode 4.0 on March 9, 2011. The software was made available for free to all registered members of the $99 per year Mac Developer program and the $99 per year iOS Developer program. It was also sold for $4.99 to non-members on the Mac App Store
Mac App Store
The Mac App Store is a digital distribution platform for Mac OS X applications developed by Apple Inc.. The platform was announced on October 20, 2010 at Apple's "Back to the Mac" event. Apple began accepting app submissions from registered developers on November 3, 2010 in preparation for its launch...

 (no longer available). As of July 20, 2011 (the day of Mac OS X Lion
Mac OS X Lion
Mac OS X Lion is the eighth and current major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers....

's release), Xcode 4.1 was made available for free to all users on Mac OS X Lion
Mac OS X Lion
Mac OS X Lion is the eighth and current major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers....

 on the Mac App Store. On August 29, 2011, Xcode 4.1 was made available for Mac OS X Snow Leopard for members of the paid Mac or iOS developer programs. On October 12, 2011, Xcode 4.2 was released concurrently with the release of iOS
IOS
iOS is an operating system for iPad, iPhone, iPod Touch, and Apple TV.IOS may also refer to:-Companies and organisations:* Illinois Ornithological Society, American state-based bird club...

 5.0, it included many more and improved features like storyboarding and automatic correction. Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...

 4.2 is now free on the Mac
MAC
-Aviation:* Martin's Air Charter, now Martinair* Mean Aerodynamic Chord* Merchant aircraft carrier, used during World War II by Britain and the Netherlands.* Metropolitan Airports Commission, the operator of airports in the Minneapolis-St...

 app store like Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...

 4.1

Xcode 4.0 drops support for many older systems, including all PowerPC development as well as SDKs for Mac OS X 10.4 and 10.5, and all iOS SDKs older than 4.3. The deployment target can still be set to produce binaries for those older platforms, but for the Mac OS platforms one is then limited to creating x86 and x86_64 binaries.

Major features

Among the features of the Xcode suite is the technology to distribute the building of source code over multiple computers. The original, now called Shared Workgroup Build, uses the Bonjour protocol to automatically discover computers providing compiler services, and the free software distcc
Distcc
In software development, distcc is a tool for speeding up compilation of source code by using distributed computing over a computer network. With the right configuration, distcc can dramatically reduce a project's compilation time ....

. More recent versions of Xcode added a second system, called Dedicated Network Builds, which scales better to larger configurations.

Thanks to the Mach-O executable format, which allows for “fat” binaries containing code for multiple architectures, Xcode can build universal binaries
Universal binary
A universal binary is, in Apple parlance, an executable file or application bundle that runs natively on either PowerPC or Intel-manufactured IA-32 or Intel 64-based Macintosh computers; it is an implementation of the concept more generally known as a fat binary.With the release of Mac OS X Snow...

 which allow software to run on both PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...

 and Intel-based (x86) platforms. Furthermore, the compilers supplied with Xcode can build 32- and 64-bit applications for both architectures. Using the iOS SDK, Xcode can also be used to compile and debug applications for iOS that run on the ARM
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...

 processor.

Xcode also includes Apple's WebObjects
WebObjects
WebObjects was a Java web application server from Apple Inc., and a web application framework that ran on the server. It was available at no additional cost. Its hallmark features were its object-orientation, database connectivity, and prototyping tools...

 tools and frameworks for building Java web applications and web services (previously sold as a separate product). As of Xcode 3.0, Apple dropped WebObjects development inside Xcode; WOLips should be used instead. Xcode 3 still includes the WebObjects frameworks.

As well, Xcode includes DTrace
DTrace
DTrace is a comprehensive dynamic tracing framework created by Sun Microsystems for troubleshooting kernel and application problems on production systems in real time...

, a dynamic tracing framework created by Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 and released as part of OpenSolaris
OpenSolaris
OpenSolaris was an open source computer operating system based on Solaris created by Sun Microsystems. It was also the name of the project initiated by Sun to build a developer and user community around the software...

. In Xcode, DTrace is used in the GUI tool Instruments
Instruments (application)
Instruments is an application performance analyzer and visualizer, integrated in Xcode 3.0 and later versions of Xcode. It is a developer tool included in Apple Mac OS X v10.5 and later versions of Mac OS X, built on top of the DTrace tracing framework from OpenSolaris and ported to Mac OS...

.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK