With WWDC wrapped up last week in San Jose, developers everywhere are digging through the pile of new toys “tools” released by Apple. While some are rewriting their budget to allow for that new iMac Pro or HomePod to fill that empty space at home, I’m still staring longingly into new Xcode 9, shedding happy tears over the vast number of improvements to our development workflow. So let’s talk about how an IDE update could make someone so happy.
As the main IDE for developing, compiling, and submitting applications for iOS, I think it makes sense to start with Xcode.
OS X Server has been available for many years via the App Store for a very reasonable $20. This app would allow you to hook into a repository and automate your testing, signing, and distribution after each commit. You could run your app’s user interface (UI) tests against every supported device and generate easy-to-read reports to see how your app was faring against new commits throughout the day. All of this functionality is now available for free, completely embedded inside the currently released Xcode 8.3.3.
Per the Xcode 8.3.3 release notes, Apple has also fixed the issue with Xcode Server randomly taking up 5000% of your CPU to complete your build process.
Xcode 9 now provides developers with the ability to wirelessly debug applications on live iOS devices. That means you’ll no longer have to physically plug your iPhone or iPad into your laptop with your 1m Lightning cable. For many this is simply an incredible convenience, for others this now means you’ll be able to debug through your application while using the Lightning port on your physical device to connect to another external device that your application may utilize or require.
The Xcode editor wasn’t ever horrible. But it was also never great. Xcode previously lacked features other editors have included for years. In the void of those features, developers were plagued with such loving bugs features as error messages, or worse, warnings that could hijack your line formatting and shift your code all over the place. If your file contained numerous such warnings, you needed to click each one to interact with the “fix it” menu. No more! As of Xcode 9, the source editor has been completely rewritten in Swift and now supports running fix it commands across an entire file. Error messages and warnings now hover quietly off to the side of your code. Large files now scroll at the speed of light, or close to it. Files moved from one group to another group will now also move in the file system. And the cherry on top? Xcode now seamlessly supports viewing and editing all of your markdown files.
Refactoring you say? In Xcode? I do! Xcode 9 will now provide a full suite of refactoring tools including:
Global renaming across Swift, Obj-C, C++, C, and Storyboard files.
Method signature conversions between Swift and Objective-C.
Updates all properties, getters, and setters.
Protocol and partially filled switch cases can be filled in with Fix-It.
Methods can be extracted removing duplicate code blocks for all supported languages.
Developers will now be able to run multiple simulators from Xcode 9 providing parallel device testing. Along with multiple instances of the simulator, developers can now target multiple applications in a single UI test allowing the testing of integration with other applications via deep links, notifications, or backend APIs. Other improvements include an API to capture screenshots of elements and screens, test attachments, and the ability to run tests using a specified language and region.
Full GitHub Integration
GitHub and GitHub enterprise accounts now fully integrate with Xcode providing a one-stop-shop user experience to developers who utilize GitHub allowing for easy browsing and one-click creation of projects. The updated source control comes with some serious speed improvements over the previous versions of Xcode and a shiny new side-by-side diff editor and branch editor. All in all, it pushes the integrated Xcode repository management tools into a competitive place for developers. However, I still have quite the soft spot for a good old-fashioned terminal when it comes to managing my Git repos.
To wrap up our Xcode 9 praise fest, we have the new and improved search. The little search bar we all know and love in Xcode will come in looking pretty similar and will provide all the same search capabilities you know and love—except now searches will be super fast, providing instant results to almost any search. The new indexing engine also comes with the ability to index while building, which means your files are ready for your next search faster than ever.
In closing, I haven’t covered all of the new features of Xcode 9 and I haven’t even touched the new capabilities and features provided to developers via iOS 11. But I hope this list excites you as much as it has us at Credera. Some other items not discussed here include a new build system, highly customizable macros, and new playground templates.
Have some thoughts, questions, or concerns about any of the new Xcode features or iOS development? Drop us a comment below.