A WWDC Summary for Extremely Busy Developers: New in Xcode

Apple gave you 30 minutes of music, and you felt a sleep. You woke up and saw a ton of things you had to learn. New stuff, tons of content and your amazing app can’t stop. I am here to help. During this WWDC I will try to sum up the stuff that matters most to me so I can’t forget (and give this info to my colleges). Since it might be useful for you I will leave this summary here.

In this post I will try to give you a glimpse of what changed in Xcode and around it.

App Thinning

App Thinning is divided in 3 areas:

  • Bitcode — Xcode archive generates an intermediate representation, the app store compiles to 32 or 64 bit as needed.
  • Slicing — If you use Asset Catalog you get a part of this for free. For instance, if an user has iphone 6, it will only install the @2x images. Asset Catalog also got more powerful accepting all kind of resources and you can also define new metrics so your resources will only be available in certain devices types, such as all devices with more than 1 GB RAM.
  • On Demand Resources — You can tag resources and download them later in your app. You can, for instance, tag a folder of resources with “level2” and download them when the user advances a level. This requires some coding to download the resources initially and then they get available with the standard APIs (such as imageNamed).

Testing

  • UI Testing — XCTest supports actions like tap on buttons and then you can inspect ui elements to see if they have the value you were expecting. You can record your actions on the simulator to help generate those boring lines.
  • Code Coverage — Unit tests now have code coverage that can be activated in the testing scheme.

Debugging

An awesome thing was added called Address Sanitizer and two instruments tools were added: Metal and another one (yeah I forgot :/). Address Sanitizer can be turned on in your scheme (the same way you activate zombies) and it basically tries to catch some crashes related to memory corruption.

  • Crash Logs — Xcode now has crash logs for versions that are on sale or that were distributed using TestFlight built in. You can access it in the organizer and you can click in each crash and open the debug navigator.

Extra stuff

  • You don’t need to unregister from the NSNotificationCenter. Hell Yeah.
  • Objective-C generics
  • Blur Animation
  • New contacts API

Useful links