What’s new in Xcode 11?

Vineet Choudhary
developerinsider
Published in
6 min readJun 21, 2019

Originally published on DeveloperInsider: What’s new in Xcode 11?

Xcode is the complete developer toolset used to create apps for Apple TV, Apple Watch, iPad, iPhone, and Mac. Xcode 11 includes everything you need to create amazing apps for all Apple platforms. Includes the latest SDKs for macOS 10.15, iOS 13, iPadOS 13, watchOS 6, and tvOS 13.

Supported Configurations

  • Xcode 11 requires a Mac running macOS 10.14.3 or later.
  • Xcode 11 includes SDKs for iOS 13, iPadOS 13, watchOS 6, macOS 10.15, tvOS 13 and Swift 5.1.
  • Xcode 11 supports running multiple concurrent versions of the Xcode app and of any associated tools such as Simulator.
  • Xcode 11 can coexist with previous versions of Xcode.

SwiftUI

  • Xcode 11 includes SwiftUI, a new Swift framework to provides views, controls, and layout structures for declaring your app’s user interface.
  • Xcode 11 provides design tools to make it as easy as drag-and-drop to construct or edit UI, all in the same Swift code file you can also edit by hand.
  • We can share common UI code across all Apple platforms, and add custom experiences for each OS. So, you can use SwiftUI views with objects from the UIKit, AppKit, and WatchKit frameworks to take further advantage of platform-specific functionality.
  • With SwiftUI, Xcode 11 constantly run real app interface to see the live change directly in the design canvas, or you can instantly run app on an attached device.
  • SwiftUI requires iOS 13, iPadOS 13, watchOS 6, tvOS 13, or macOS 10.15. To use the SwiftUI design canvas Xcode 11 must running on macOS 10.15. You need to Select Use SwiftUI during the project setup to use SwiftUI.

Swift Package Manager (SPM)

  • Swift packages can now be used natively in application on all of Apple’s platforms.
  • Xcode 11 can automatically retrieves and manages packages based on dependencies. Add Package Dependency option available in the File > Swift Packages > Add Package Dependency menu.
  • Swift Package Manager are integrated throughout the Xcode 11 workflows. That’s include create, build, debug, SCM, publish and more.
  • You can easily use published Swift packages on GitHub, Bitbucket, GitLab, or your own hosts.

iPad App to Mac

  • Xcode 11 makes it easy to port your existing iPad app into a native Mac app. Your Mac and iPad apps will share the same project and source code.
  • Xcode 11 interface builder supports customizing iPad application interfaces for Mac.

Interface Builder

  • You can switch between the light and dark appearance for iOS application directly form the Interface Builder’s device bar. Also, Asset catalog makes it easy to control images and colors for dark and light mode.
  • Xcode 11 Interface Builder supports the new Apple TV tab bar style.
  • Interface builder supports customizing iPad application interfaces for Mac.
  • The NSStackView inspector now allows you to set negative spacing.
  • With Xcode 11, Cells in a UITableView can now self size with Auto Layout constrained views directly into the canvas. To use this feature for existing table views you need to enable Automatic for the table viewestimated item size, and Automatic for cell's height in the Size inspector. Similarly, you can do with the UICollectionView.
  • New Xcode 11 improved the reliability of Auto Layout constraint generation with Add Missing Constraints option.
  • Now you can scroll the UIScrollView directly inside the Interface Builder canvas, once its subviews are fully constrained with Auto Layout constraints.
  • NSSwitch is available when running on macOS 10.15.

Source Editor

  • Xcode 11 source editor now natively supports spell checking. (Shortcut — + ;)
  • Xcode 11 source editor added a mini map of the file. The mini map includes legible text for //MARK: comments and #pragma mark directives, highlighted lines with errors and warnings, source control changes, breakpoints, and highlighted Find results.
  • The mini map is enabled by default and can be turned off per editor.
  • When dragging and dropping text, Xcode opened up some space to make it easier to see where text will be dropped.
  • Finally, Xcode 11 editor allows the hierarchical code folding. Also, Code folding now supports square brackets, and parentheses.
  • //MARK: comments and #pragma mark directives now draw a separator line in the editor. You can enable it from the Xcode Preferences > Text Editing > Display > Show Mark Separators.
  • With Xcode 11 you can view inline code changes in the Source Editor by clicking on the Source Control Change Bar and choosing Show or Hide Change.

Simulator

  • Xcode 11 no longer creates every available iOS simulator device by default. Instead a set of the most commonly used devices are created.
  • You can create other devices or multiple instances of a device from the Device window.
  • Metal is available in iOS 13 and tvOS 13 simulators when running on macOS 10.15. In these simulators Metal code is executed on the Mac GPU.

Debugging

  • Xcode view debugger shows the names of UIImage instances.
  • The view debugger now shows the names of iOS named and system colors.
  • The view debugger shows information for the constraint by double clicking a constraint in the size inspector.
  • From Xcode 11, debugger can prefer using Wi-Fi to connect to a Watch when installing or debugging an app.
  • The debug bar appearance switcher supports changing between dark and light modes on iOS.

Organizer

  • The new Metrics tab in the organizer shows battery life and performance analytics for your app to help you drive optimizations.
  • To view metrics reports, choose Window > Organizer and click Metrics. Xcode refreshes the data in the metrics reports daily.
  • The available metrics are battery drain, launch time, hang rate, memory, and disk writes.
  • Metrics are reported for your app when distributed on the App Store and after sufficient use. You can filter data by device and usage characteristics.

Command Line Tools

  • Now, Xcode supports uploading apps from the Organizer window or from the command line with xcodebuild or xcrun altool.
  • Application Loader and altool is no longer available with Xcode 11 or higher.
  • xcodebuild is enhanced with new options supporting Test Plans. Now you can use the new -showTestPlans option to list all test plans associated with a project scheme.

Deprecations

  • Scripting language runtimes such as Ruby, Perl, and Python are included in macOS for compatibility with legacy software. In future versions of macOS, scripting language runtimes won't be available by default, and may require you to install an additional package.
  • If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app.
  • Command line tool support for Subversion — including svn, git-svn, and related commands is no longer provided by Xcode. If you need Subversion or related command line tools the you need to install the Command Line Tools package by running xcode-select --install.

Building…

Download Xcode 11 Beta

Check out AppBox. AppBox is tool which build and deploy Development, Ad-Hoc and In-house (Enterprise) iOS applications directly to the devices from your Dropbox account. AppBox is a opensource software available on github https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation .

--

--

Vineet Choudhary
developerinsider

iOS, macOS and Xamarin Developer | Creator of @DevsInsider amd @AppBoxHQ