It’s almost September and the long awaited Apple event is almost here. Although rumors suggest that iPhone and iWatch fans will be disappointed with the new versions of their favorite devices, the same cannot be said for the developers.
Based on the announcements Apple made in the past few months and few beta releases, new version of Xcode is going to one of the best ones ever. According to the official docs some of the real pain the ass bugs Xcode 7 had are going to be fixed. Here’s a breakdown of the top five features which are going to be introduced in the September event!
Redesign of the Interface builder
One of the biggest changes being introduced to the new version of Xcode is the live preview of your UI on multiple devices. Debugging UI can be extremely time consuming especially if your app has few storyboards and several hundred classes so you have to wait few minutes for every build. This new feature will allow you to test your interface on all devices without actually running your application. Although something similar could be achieved with IBDesignable elements Xcode has a tendency to crash after adding few of those on a same Nib file. In addition you would have to switch between scene size to get a feel of how to layout will look like. Redesign of the Interface Builder is more than welcome upgrade and it will definitely save a lot of time. In addition, pan and zoom features should get an improvement, including zoom feature which now should also be available on single Xib files instead of just storyboards. I am also hoping to see some performance improvements when it comes to storyboard preview with a lot of views.
Source Editor Extensions
Alcatraz is getting a competitor (almost)! Xcode 8 will introduce extensions which will for now only be focused on manipulating and navigating the contents of the source editor. This will allow developers to bind extensions to a keyboard shortcut which might speed up some refactoring tasks. Xcode includes a new template to bootstrap your extensions development. In addition extensions will have an option to be distributed on the Mac App Store. One of the most important features of the extensions is that extensions run in a separate process, meaning Xcode will not crash if one of the extensions fails.
In one my previous posts few weeks ago I tackled some of the features Swift 3 is going to introduce. In addition to the language changes itself Xcode introduced something which will the stress of migrating from Swift 2.3 to Swift 3. All the previous Xcode upgrades required you to migrate all your code to the latest Swift version. This will no longer be the case since we will have an option to use older version of Swift on the latest version of Xcode.
This is greatly going to ease the transition and migration to the new tools. Last year I worked on a project where we had to delay the migration from Xcode 6 to Xcode 7 for two months due to the fact that half the pods we used did not work on the latest Swift syntax and that we had to solve around 200 bugs in our own code. In addition to the legacy feature, the transition from Swift 2 to 3 this year, in my opinion, is going to be a lot easier because the latest patch for Xcode introduced warnings in build time telling you which functions or syntax is going to be deprecated so there was enough time to prepare.
Code signing improved, bye bye Fix issue!
Device setup and code signing are greatly simplified. The new automatically managed code signing generates all the assets you need to properly sign, provision, and run your apps on a connected Apple device. According to Apple all you will have to do is select your team and Xcode will download all the required profiles and sign you app. There will still be an option for hand-picking your provisioning profiles and setting up the signing process for each build configuration. For multiple Macs(if you develop on two or more machines), Xcode will automatically generate a unique development certificate for each Mac. Another new feature is that from now on, you will no longer require an Apple Developer Program membership to build your app on the actual device.
Xcode 8 introduces reporting issues in runtime which should help tracking down hard-to-find bugs that may not have been noticed until your app was in the hands of users. The new Thread Sanitizer spots race conditions on data changes and other threading-related bugs. UI constraint problems should now be easier to find using the updated View Debugger. The feature that I’m most excited about is the new Memory Debugger which should allow you to find memory leaks. According to the demos, it will be capable of easily telling you which controller and function is the cause of the problem. Although this is possible with the current versions, it can sometimes be quite complex and only the most experienced developers knew how to use this tool.
Those are some of the spotlights of the new soon to be released version of Xcode. Apart from these, Apple announced many other, smaller ones such as new San Francisco font, current line highlighter, image and color literals in Swift, autocomplete for images, improved docs and much more. While I was disappointed with Xcode 7 because in my opinion it didn’t introduce many new useful features and was less stable than Xcode 6, first previews and beta versions of Xcode 8 seem promising. Did you get a chance to explore some of the beta releases? What is your favorite feature of the new Xcode 8? Feel free to share in the comments or on Facebook and Twitter.