Xcode 13 brings improved Git integration, support for GitHub, Bitbucket, and GitLab collaboration features, new editor capabilities, and Vim keybindings.
The Xcode team has spent some significant effort to seamlessly integrate advanced collaboration features provided by code hosting platforms like GitHub, Bitbucket, and GitLab. In particular, you can now easily create pull requests from within the IDE and ask for a review of your changes. Any comments provided by the reviewers are displayed inline with the code inside of the editor, along with the reviewer's name and avatar. You can also reply to the comment without leaving Xcode.
In addition, Xcode 13 extends its support for working with Git repositories and carrying through common tasks such as comparing two versions of a file and listing and navigating through all the changes in a project. You can easily inspect all branches and commits without losing you current editing context.
Speaking of the source code editor, which is possibly the most essential feature to Xcode, Xcode 13 brings a number of changes aiming to reduce your typing when using Swift. For example, if you use a type which is provided by some frameworks that you have already imported somewhere else, Xcode 13 is able to automatically import that framework for you instead of complaining about the unknown type.
Very welcome to many will be also the ability of Xcode 13 of autocompleting your code by inspecting properties inside of properties. This means that if you start typing view.mask...
Xcode will suggest view.layer.masksToBounds
and view.layer.masks
as possible completions.
Additional code completion niceties include the possibilities of autocompleting switch
and if let
statements.
More substantive are column breakpoints, which makes it easier to debug into complex expressions that use multiple functions. Instead of breaking on the whole line and then stepping through until you reach the function you want to debug, you can now set a breakpoint on a column, so the debugger will break exactly on that part of the expression and allow you to spare some effort.
As mentioned, Vim keybindings are now supported in Xcode. They do not include all Vim's operations, especially when it comes to more complex ones, but all the basics are there, including navigating, searching, inserting, yanking, and so on.
As a final note, Apple has improved the integration with TestFlight crash reports and introduced a new Cloud signing service to simplify certificate management.