[5] Xcode includes command-line tools that enable UNIX-style development via the Terminal app in macOS.
Xcode supports source code for the programming languages: Swift, C++, Objective-C, Objective-C++, Java, AppleScript, Python, Ruby, ResEdit (Rez), and C, with a variety of programming models, including but not limited to Cocoa, Carbon, and Java.
Third parties have added support for GNU Pascal,[7] Free Pascal,[8] Ada,[9] C#,[10] Go,[11] Perl,[12] and D.[13] Xcode can build fat binary (universal binary) files containing code for multiple architectures with the Mach-O executable format.
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.
[18] The Playgrounds feature of Xcode provides an environment for rapid experimentation and development in the Swift programming language.
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.
[21][22][23] Playgrounds was used by Apple to publish Swift tutorials and guided tours where the REPL advantages are noticeable.
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".
[26] Playgrounds was announced by Apple Inc. on June 2, 2014, during WWDC 2014 as part of Xcode 6 and released in September.
In September 2016, the Swift Playgrounds application for iPad (also available on macOS starting in February 2020) was released, incorporating these ideas into an educational tool.
One technology involved was named Shared Workgroup Build, which used the Bonjour protocol to automatically discover systems providing compiler services, and a modified version of the free software product distcc to facilitate the distribution of workloads.
Xcode 1.0 was based on Project Builder, but had an updated user interface (UI), ZeroLink, Fix & Continue, distributed build support, and Code Sense indexing.
It included the Quartz Composer visual programming language, better Code Sense indexing for Java, and Ant support.
It supported shared precompiled headers, unit testing targets, conditional breakpoints, and watchpoints.
Notable changes since 2.1 include[30] the DTrace debugging tool (now named Instruments), refactoring support, context-sensitive documentation, and Objective-C 2.0 with garbage collection.
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.
[36] Xcode 4.3, released on February 16, 2012, is distributed as one application bundle, Xcode.app, installed from the Mac App Store.
[citation needed] Xcode 4.3.3, released in May 2012, featured an updated SDK for Mac OS X 10.7.4 "Lion" and a few bug fixes.
Xcode 4.4 includes support for automatic synthesizing of declared properties, new Objective-C features such as literal syntax and subscripting, improved localization, and more.
Xcode added support for iOS 6 and the 4-inch Retina Display on iPhone 5 and iPod Touch 5th generation.
Xcode 10 introduced support for the Dark Mode announced for macOS Mojave, the collaboration platforms Bitbucket and GitLab (in addition to already supported GitHub), training machine learning models from playgrounds, and the new features in Swift 4.2 and Metal 2.1, as well as improvements to the editor and the project build system.
Xcode 11 introduced support for the new features in Swift 5.1, as well as the new SwiftUI framework (although the interactive UI tools are available only when running under macOS 10.15).
[53] It also supports building iPad applications that run under macOS; includes integrated support for the Swift Package Manager; and contains further improvements to the editor, including a "minimap" that gives an overview of a source code file with quick navigation.
The minimum version of macOS supported by Xcode 12.1 built apps is OS X 10.9 Mavericks.
Xcode 13’s major features include the new concurrency model in Swift projects,[57] improved support for version control providers (such as GitHub), including the ability to browse, view, and comment on pull requests right in the app interface, and support for Xcode Cloud, Apple’s newly-launched mobile CI/CD service (it also has a web version).
[56] Xcode 16 introduced predictive code completion on Apple silicon Macs, along with the Swift Testing framework.