Xcode is Apple Computer’s integrated development environment (IDE) for OS X. The full Xcode package is free to ADC members and includes all the tools you need to create, debug, and optimize your own Universal applications, targeting both Intel and PowerPC platforms. At the heart of Xcode is a graphical workbench that tightly integrates a syntax-highlighting text editor, a robust build control system, a debugger, and the powerful GCC compiler capable of targeting both Intel and PowerPC regardless of host platform. Xcode is both easy to use, using assistants to create working projects in just minutes, and also powerful enough to build the largest OS X applications. Xcode is bundled with Interface Builder, AppleScript Studio, Java development support, and WebObjects development tools, among many others.
Xcode 6 introduces a radically new way to design and build software. Swift is an innovative new programming language for Cocoa and Cocoa Touch and, when combined with Xcode tools, makes programming a delightfully live experience. This same live experience permeates throughout Xcode 6. Live rendering within Interface Builder displays your hand-written UI code within the design canvas, instantly reflecting changes you type in code. And the new view debugger explodes all the UI layers into a 3D visualization, making it easy to understand how your interface is composed, and identify overlapping or clipping views.
Version 6.0 beta:
Xcode 6 has deep support for Swift throughout. It’s easy to create a brand new app using 100% Swift code, add new Swift code or frameworks to existing apps, and view documentation in either Swift, Objective-C, or both. All the popular affordances such as “Jump to Definition” or “Open Quickly” work equally well with Swift, and even Objective-C header definitions can be shown in Swift syntax.
Playgrounds enable the interactive experience of a script language, even though Swift compiles to highly-optimized native code. Type a line of code and the result appears immediately. If your code runs through a loop, add that line of code to the timeline assistant editor to watch its progression. Display variables in a graph, inspect each step when drawing a view, or watch an animated SpriteKit scene. When you’ve perfected your code in the playground, simply move it into your project. Playgrounds documentation includes tutorials that you can open in a playground, providing an interactive worksheet for experimentation.
Xcode’s debugger includes an interactive version of the Swift language, known as the REPL (Read-Eval-Print-Loop). Use Swift syntax to evaluate and interact with your running app or write new code in a script-like environment. The REPL is available from within LLDB in Xcode’s console, or from Terminal.
Interface Builder now displays your custom objects at design time, appearing as they will when your app is run. When you update the code for your custom view, the Interface Builder design canvas updates automatically with the new look — no need to build and run. APIs let you add properties to the IB inspector for quick design time changes to your views, and you can even pre-populate the view with example data to get a more accurate feel for the interface. Storyboards for iOS support UIKit size classes, so you can develop a single universal storyboard that behaves correctly on any iOS device. Choose unique behaviors for certain device sizes or orientations while keeping the majority of the interface consistent and easy to maintain. Interface Builder can preview any combination of device and orientation as you design the interface.
Debugging an app’s UI is now as simple as a single click to explode the paused app’s UI into a 3D rendering of each layer in the stack of views. Easily see why a view may be clipped or invisible, and inspect and debug constraints and other properties within the inspector. To fix the problem, select a view to quickly jump to its related code. Xcode 6 includes other new debugging tools, such as debug gauges to monitor I/O usage and an enhanced iCloud gauge. The debug navigator shows even more useful information, including recorded stack frames and enqueued blocks.
The XCTest framework has been extended to support performance tests, and is fully integrated into Xcode and Xcode Server. Xcode will run your performance tests, letting you define a baseline performance metric. Each subsequent test run compares performance, displays the change over time, and alerts you to sudden regressions a code commit could introduce. Performance tests are tightly integrated into Xcode’s new logs UI that more clearly shows when test results change, alerting you to regressions in performance or functionality as you monitor the quality of your app. Instruments now looks and works more like Xcode. The tracks of recorded data are given even more space, and configuration for how data is collected and viewed is managed in a unified inspector area. Instruments can even profile your XCTests.
Storyboards for OS X
Storyboards come to OS X, taking advantage of the new View Controller APIs in AppKit. Quickly wire together multiple views, defining containment and animations without writing code. Storyboards for OS X encourage interfaces that follow Mac standards, so your apps behave the way users expect.
Extensions and Frameworks
iOS developers can now create dynamic frameworks, just like on OS X. Frameworks are a collection of code and resources to encapsulate functionality that is valuable across multiple projects. Frameworks work perfectly with Extensions, sharing logic that can be used by the main app and the bundled Extensions.
Xcode includes a SpriteKit level designer, SceneKit Support, and support for new features in the particle editor. It’s never been easier to create great games for both iOS and OS X.
Localization in Xcode 6 has been thoroughly upgraded. Base .strings files are now produced automatically from your code. View how your app looks in different languages with the Preview Assistant or launch your app in the iOS Simulator as though in other locales. When you’re ready, Xcode easily exports and imports industry-standard .XLIFF format.
Bots running on OS X Server support triggers that run custom scripts based on rules, more options are available for setting the interval to run an integration, and bots can be grouped to share configurations. iOS Simulator configurations make it easy to create unique testing scenarios, especially when run by Xcode Server.
OS X 10.10 or later