Write code using a professional editor with advanced code completion, code folding, syntax highlighting, and message bubbles that display warning, errors, and other context-sensitive information inline with your code.
The Assistant button splits the editor in two, creating a secondary pane that automatically displays files that are most helpful to you based on the code you are actively editing. It can show the header counterpart, the superclass, callers, callees, or other helpful files.
Xcode’s Version editor displays a running timeline of commits, helps you determine blame, and graphically goes back in time to compare source files, with full support for Subversion and Git source control (SCM) systems.
Interface Builder Built In
Design and test your user interface without writing a line of code, prototype in minutes, then graphically connect your interface to the source within the Xcode editor.
With the iOS SDK, Xcode can build, install, run, and debug Cocoa Touch apps in a Mac-based Simulator for a streamlined 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 iPad and iPhone apps onto a device.
The powerful open-source LLVM compiler for C, C++, and Objective-C is built into Xcode and available from Terminal. With it, your code compiles quickly, and is optimized by Apple to produce blazing-fast apps specifically tuned for the CPUs in iPhone, iPad, and Mac.
Debug your app directly within the Xcode editor. Hover over any variable to drill into its contents, use Quick Look to see the data it contains, or right-click to add the variable to the watch list.
Xcode Server controls server-side bots that continuously build, analyze, test, and even archive your Xcode projects. The Xcode IDE configures these bots, analyzes nightly build and test results, and can track down which check-in broke the build.
The asset catalog editor in Xcode manages your app’s images, grouping together various resolutions of the same asset. When building, Xcode compiles the asset catalog into the most efficient bundle for final distribution.
Simply press Cmd-Shift-O to instantly open any file within your workspace using the primary editor, or hold the Option key when selecting a file to open it in the Assistant editor. Open Quickly is an essential tool in any keyboard-driven workflow.
OpenGL Frame Capture
Press a single button to capture a complete representation of the current OpenGL frame from an iOS device. Xcode displays the shader information, and can visually construct how the frame was assembled within the Xcode debugger.
Easily search and find anything within Help or the Documentation and API Reference viewer.
Just like a word processor highlights spelling errors, Live Issues highlights common coding mistakes, without the need to click ‘build’ first.
Xcode goes beyond just reporting errors. When you make a coding mistake, Xcode will immediately alert you, and a single keyboard shortcut will instantly fix the issue, so you won’t miss a beat while coding.
Shortened API documentation is displayed while you’re programming, including comments that you write for your code. A brief overview is presented during code completion, with more links and references available within the Utility area.
XCTest APIs make it easy to build unit tests that exercise app functionality and are capable of running on Mac, iPad, iPhone, or Simulator.
Find bugs in your code before the app is even run by letting the built-in static analyzer try out thousands of possible code paths in a few seconds. You’ll get a report of potential bugs that could have remained hidden or are nearly impossible to replicate.
Tell Instruments which app to analyze, what type of data to collect, and simply click the big red button as data is collected and stored for further analysis.
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.
Inspect data spikes on the graph to see what code is executing at the time, then easily jump into Xcode to fix the problem.
Choose any of the bundled instruments in the library from low-level CPU, network, or file activity, to advanced graphics and user-event instruments.
Hard-to-find errors and crashes can be trapped within Instruments when an app tries to access memory that is no longer available.
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.
Sample performance data with a simple key press, using low overhead to collect high-fidelity information.
Create your own Instruments using DTrace and the Instruments custom builder.
Taking up very few resources, Instruments records information about all the processes on your system, revealing performance bottlenecks caused as processes interact.
Other tools included in macOS
Command Line Tools
Download the macOS SDK, headers, and build tools such as the Apple LLVM compiler and Make. These tools make it easy to install open source software or develop on UNIX within Terminal. macOS can automatically download these tools the first time you try to build software, and they are available on the downloads page.
macOS comes with AppleScript, Perl, Python, and Ruby already installed. And because macOS is built on UNIX, you can easily build your versions of popular open source languages using Xcode or the command line developer tools that come with macOS.
Apple Event Bridge
AppleScript and Automator get much of their power from the underlying Apple Event engine, making it easy to automate tasks on macOS. This bridge lets you command and query apps from additional languages such as Objective-C, Ruby, and Python, using the same messaging architecture as AppleScript.
The AU Lab tool enables mixing and manipulation of audio streams.
Terminal 2 provides access to the UNIX shell with tabs, colors, and Unicode support.
Source Control: Git and Subversion
The Xcode IDE supports both of these SCM systems directly within the IDE, and makes them available from the command line.
These include all of the most popular command line tools such as make, awk, sed, ssh, tar, and zip.
The editors in macOS include TextEdit, xed (the Xcode editor), plus vim and emacs.
Compare, differentiate, and merge any text document.