Xcode 11

Xcode 11 includes everything you need to create amazing apps and to bring your apps to even more devices. Take advantage of SwiftUI, an all-new user interface framework with a declarative Swift syntax. Start bringing your iPad app to Mac with just a click. And with support for Swift packages, Xcode 11 lets you share code among all of your apps or use packages created by the community.

SwiftUI

Better apps. Less code.

SwiftUI is an innovative, exceptionally simple way to build user interfaces across all Apple platforms with the power of Swift. Build user interfaces for any Apple device using just one set of tools and APIs. With a declarative Swift syntax that’s easy to read and natural to write, SwiftUI works seamlessly with new Xcode design tools to keep your code and design perfectly in sync. SwiftUI is truly native, so your apps directly access the proven technologies of each platform to beautifully implement everything users love about the Apple ecosystem.

Learn more

Declarative syntax. Write simpler code with a declarative Swift syntax that clearly states what your user interface should do.

Design tools. Drag and drop to construct or edit your interface. Quickly make changes to visual UI elements with pop-up inspectors.

Native on all Apple platforms. Your apps gain incredible native performance and take advantage of the proven technologies, controls, and user experiences of Apple platforms to feel fully integrated.

Live mode. See your design change instantly in one or many exact previews. Switch the design canvas to live mode to instantly interact with your running app in Xcode or on a connected device.

Bring your iPad App to Mac

Xcode makes it easy to get a huge head start on turning your existing iPad app into a native Mac app. Your Mac and iPad apps share the same project and source code, so any changes you make translates to both platforms. And your newly created Mac app runs natively, utilizing the same frameworks, resources, and even runtime environment as apps built just for Mac.

Learn more

Swift and Swift Packages

Swift 5 is now built right into all Apple platforms and the binary interface for Swift is stable moving forward. Your apps will be smaller, download faster, and keep working as Swift continues to evolve.

Swift packages are integrated throughout all of Xcode 11, making it incredibly simple to use a package in your apps for Apple platforms. Just add a new package dependency to add an external package to your project., then clone the package from GitHub, Bitbucket, GitLab, or your own code host. Xcode checks the package dependencies and displays all the packages you use directly in the navigator.

It’s also easy to create your own packages to use with projects based on your own code, or to share with the world. Source code you put in these packages will be built into any apps that depend on the package, with support for all Apple platforms. Code in the package is still easy to debug, test, and use with source code management.

Learn more

Dark Mode for iPhone and iPad

Dark Mode has been beautifully integrated throughout iOS, and Xcode 11 gives you powerful tools to easily support dark mode in your apps. Quickly switch your designs and previews between light and dark in Interface Builder, and preview both modes in SwiftUI, even side-by-side. Asset catalogs let you label assets and named colors with variants for light and dark. And you can switch your app in and out of dark mode while debugging. This is all done using controls within Xcode that only apply to your app, with no need to change your system settings.

Learn more about Dark Mode

Your Editor, Your Layout

Whether you prefer a single editor or split your windows into a precisely-arranged mosaic, Xcode 11 gives you total control over your coding area and the ability to split any editor pane. Editors can also show SwiftUI previews, live views of playgrounds, and a myriad of assistants. If you need to focus on just one file, you can click-zoom to maximize the pane, and return to exactly where you were before. The new minimap sidebar shows a birds-eye view of the open file, including highlights that make it easy to jump to the right place.

Your code looks better than ever with documentation comments with bold and italics rendered inline with your code. You can even inspect the differences in your current source edits compared to past versions, with a comparison view that updates as you type.

In-depth Testing

The updated Devices window lets you simulate your users’ environment, for example when your app is running in extreme heat or on a slow network. Test plans in Xcode 11 make it easy to automate a huge number of test and analysis steps, all to be run in parallel. For instance, you can select several sanitizer tools with conflicting build settings, and Xcode will run all the tests for you and automatically build all the versions you need.

Screenshots are now easy to automate with an API that saves screenshots to your results bundle during UI testing. Combined with testing your localized UI, it’s easy to take every screenshot you need to submit to the App Store, or to show your localization team.

With even better support for Xcode Server and other continuous integration tools, you can constantly test your app in hundreds of user scenarios, easily and efficiently.