Xcode 11 New Features


New Features

General

  • Xcode 11 beta supports development with SwiftUI, available when running on macOS 10.15 beta.
  • Xcode supports uploading apps from the Organizer window or from the command line with xcodebuild or xcrun altool. Application Loader is no longer included with Xcode.
  • LaunchServices on macOS now respects the selected Xcode when launching Instruments, Simulator, and other developer tools embedded within Xcode.

Apple Clang Compiler: 


  • Deprecation warnings will be issued when standard library facilities that were deprecated in the active Standard version are used. 

Asset Catalog


  • Assets can now be cut, copied, pasted, and duplicated using the menu or keyboard shortcuts.

Build System


  • Xcode removes some entries from the Info.plist file of a product at build time if the entries are not appropriate for the platform being built for, which is useful for targets which are configured to build for multiple platforms. This behavior can be disabled by setting the build setting DISABLE_INFOPLIST_PLATFORM_PROCESSING to YES
  • Custom build rules can now specify additional, static input files that are used during execution.These resolved input file paths are supplied to rule scripts using the SCRIPT_INPUT_FILE_#

Core Data


  • There is now a checkbox that makes it possible for you to distinguish whether the default value of a string attribute should be nil or the empty string. When set, the default value is the empty string if no other default is specified.
  • When creating an application using Core Data, there is a new checkbox to also enable CloudKit support for the data model’s default configuration

Debugging


  • The view debugger now shows the names of iOS named and system colors.
  • The view debugger shows trait collection information.
  • The view debugger shows the names of UIImage instances.
  • The “Pause on issues” checkboxes in the Diagnostics tab of the Scheme Editor are replaced by regular breakpoints. You can use the Breakpoints Navigator to create a Runtime Issue Breakpoint. 
  • Xcode can prefer using Wi-Fi to connect to a Watch when installing or debugging an app. 

Deprecations


  • 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, install the Command Line Tools package by running xcode-select --install.
  • The Quartz Composer framework is deprecated.
  • Use of Python 2.7 isn’t recommended. This version is included in macOS for compatibility with legacy software. 
  • Scripting language runtimes such as Python, Ruby, and Perl 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.

Interface Builder


  • The contents of a UIScrollView are scrollable within the canvas, once its subviews are fully constrained with Auto Layout constraints
  • Cells in a UITableView can now self size with Auto Layout constrained views in the canvas. To opt into the behavior for existing table views, enable “Automatic” for the table view estimated item size, and “Automatic” for cell’s height in the Size inspector. 
  • Interface Builder’s device bar lets you switch between the light and dark appearance for iOS apps.
  • The new WKInterfaceTextField interface element is available for watchOS. 
  • The canvas supports customizing iPad app interfaces for Mac.

Localization


  • You can now localize assets in asset catalogs
  • The genstrings tool is enhanced and merged with the extractLocStrings tool. The previous version is deprecated, has been renamed to ogenstrings, and must now be invoked with xcrun

Source Control


  • You can now cherry-pick changes from one branch to another.
  • When cloning a new repository, you can now select the branch to check out from the list of available branches.
  • Using the new source control file inspector, you can browse the full history of a file for the current branch. Big relief.
  • You can now stash changes and manage stashes from the source control navigator. 

Swift


  • An @autoclosure parameter can now be declared using a type alias.
  • Methods declared using the @objc attribute inside a class can now return Self.


class MyClass: NSObject {
    @objc func clone() -> Self { return self }
}


  • Assigning Optional.none to an enumeration that also has a none case, or comparing such an enumeration with Optional.none now produces a warning. 


enum Foo { case none }

// Assigned Optional.none instead of Foo.none.
let foo: Foo? = .none
// Comparing with Optional.none instead of Foo.none.
let isEqual = foo == .none



  • Functions can now hide their concrete return type by declaring what protocols it conforms.
  • Enum cases can now be matched against an optional enum without requiring a ‘?’ at the end of the pattern

And lot more new feature which could not be listed here. Please refer: https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes

Enjoy XCode 11 :)


Comments


  1. Leo Oscar
    Thank you so much for this useful information. looking more from your side to update us on more updates and advancements

    ReplyDelete

Post a Comment

Popular posts from this blog

Copy Vs Mutable Copy in iOS

How to Disable iOS/iPad App availability on Mac Store, Silicon?

Closures in Swift - Part 1