Xcode is Apple's integrated development environment (IDE) for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, tvOS, and visionOS. It was initially released in late 2003; the latest stable release is version 15, released on September 18, 2023, and is available free of charge via the Mac App Store and the Apple Developer website. Registered developers can also download preview releases and prior versions of the suite through the Apple Developer website. Xcode includes command-line tools which enable UNIX-style development via the Terminal app in macOS. They can also be downloaded and installed without the GUI.
Before Xcode, Apple offered developers Project Builder and Interface Builder to develop Mac OS X applications.
Major features
Xcode supports source code for the programming languages: C, C++, Objective-C, Objective-C++, Java, AppleScript, Python, Ruby, ResEdit (Rez), and Swift, with a variety of programming models, including but not limited to Cocoa, Carbon, and Java. Third parties have added support for GNU Pascal, Free Pascal, Ada, C#, Go, Perl, and D.
Xcode can build fat binary (universal binary) files containing code for multiple architectures with the Mach-O executable format. These helped ease the transitions from 32-bit PowerPC to 64-bit PowerPC, from PowerPC to Intel x86, from 32-bit to 64-bit Intel, and most recently from Intel x86 to Apple silicon by allowing developers to distribute a single application to users and letting the operating system automatically choose the appropriate architecture at runtime. Using the iOS SDK, tvOS SDK, and watchOS SDK, Xcode can also be used to compile and debug applications for iOS, iPadOS, tvOS, and watchOS.
Xcode includes the GUI tool Instruments, which runs atop a dynamic tracing framework, DTrace, created by Sun Microsystems and released as part of OpenSolaris.
Xcode also integrates built-in support for source code management using the Git version control system and protocol, allowing the user to create and clone Git repositories (which can be hosted on source code repository hosting sites such as GitHub, Bitbucket, and Perforce, or self-hosted using open-source software such as GitLab), and to commit, push, and pull changes, all from within Xcode, automating tasks that would traditionally be performed by using Git from the command line.
Composition
The main application of the suite is the integrated development environment (IDE), also named Xcode. The Xcode suite includes most of Apple's developer documentation, and built-in Interface Builder, an application used to construct graphical user interfaces. Up to Xcode 4.1, the Xcode suite included a modified version of the GNU Compiler Collection. In Xcode 3.1 up to Xcode 4.6.3, it included the LLVM-GCC compiler, with front ends from the GNU Compiler Collection and a code generator based on LLVM. In Xcode 3.2 and later, it included the Clang C/C++/Objective-C compiler, with newly-written front ends and a code generator based on LLVM, and the Clang static analyzer. Starting with Xcode 4.2, the Clang compiler became the default compiler, Starting with Xcode 5.0, Clang was the only compiler provided.
Up to Xcode 4.6.3, the Xcode suite used the GNU Debugger (GDB) as the back-end for the IDE's debugger. Starting with Xcode 4.3, the LLDB debugger was also provided; starting with Xcode 4.5 LLDB replaced GDB as the default back-end for the IDE's debugger. Starting with Xcode 5.0, GDB was no longer supplied.
Playgrounds
The Playgrounds feature of Xcode provides an environment for rapid experimentation and development in the Swift programming language. The original version of the feature was announced and released by Apple Inc on June 2, 2014, during WWDC 2014.
Playgrounds provide a testing ground that renders developer code in real time. They have the capability of evaluating and displaying the results of single expressions as they are coded (in line or on a side bar), providing rapid feedback to the programmer. This type of development environment, known as a read-eval-print loop (or REPL) is useful for learning, experimenting and fast prototyping. Playgrounds was used by Apple to publish Swift tutorials and guided tours where the REPL advantages are noticeable.
The Playgrounds feature was developed by the Developer Tools department at Apple. According to Chris Lattner, the inventor of Swift Programming Language and Senior Director and Architect at the Developer Tools Department, Playgrounds was "heavily influenced by Bret Victor's ideas, by Light Table and by many other interactive systems". Playgrounds was announced by Apple Inc. on June 2, 2014, during WWDC 2014 as part of Xcode 6 and released in September.