I was one of the lucky ones who attended WWDC 2013 this year. (Pro tip: copy your Apple ID password to the clipboard so you can sign in very quickly and order your ticket.) As always there is a lot of information about new products, OS updates, innovations and APIs. Below is a round up of some of the most important developments in iOS development from Apple.
- Bots. Apple has finally made continuous integration a breeze. In the past I have used Jenkins to set up a continuous integration system–but it was a lot of work which required a great deal of manual configuration. With XCode 5 and OS X Server you can use Bots to easily build a continuous integration system and even have a “scoreboard” which shows stats on the state of your build.
- XCTest. Apple has upgraded their unit test framework and made testing your code easier than ever.
- XCode 5. Built on ARC the new XCode should take up less memory and run faster than before. They’ve streamlined the interface and included some new built-in profiling tools to help catch memory leaks and performance issues while you’re developing. Instruments is still there with its rich tools, but now XCode has an early warning system while you’re debugging.
- New Background Features. Background transfer means that the OS will download (or upload) your data for you while your app is in the background. This is huge for data-intensive apps! Read up on NSURLSession to find out more. Remote Notification allows you to send a push notification to your app and wake it up to perform a task. Background Fetch tells the OS to periodically wake your app and give it a chance to update its data, so that whenever the user brings it to the foreground it has up-to-date information to present to the user.
- UIKit Dynamics. iOS has always had rich animation support, but now it’s easier than ever to create dynamic and engaging interactions in your app. And for gamers check out SpriteKit (Cocos2D watch out). It even has a particle effects editor!
- Inter-App Audio. CoreAudio has some cool new features that allow audio-enabled apps to share audio between each other. This is very similar to AudioBus–but works directly with the OS and doesn’t require a third party library (which makes me wonder what’s going to happen to the innovative AudioBus app and framework).
- Collection View Layout Transitions. There is some really cool stuff you can do in iOS 7 with collection views and layout transitions. Check out the iOS 7 photo app or calendar for examples! This new feature will let you seamlessly transition from one layout to another within the same collection view. Instead of pushing a new view onto a navigation controller the existing collection view can animate to a new layout and present a detail view within a larger context–giving users a better sense of place.
- Custom Navigation Transitions. Have a great idea for a navigation controller transition? Now you can build it. There are a lot of details here, and it looks pretty complicated, but if you follow the rules it looks like it will work pretty smoothly and save you the trouble of building your own navigation UI.
- State Restoration. This has existed since iOS 6 but there are some new features that make it more powerful and easier than ever to let iOS restore your app to its former state when it is re-launched. Combined with snapshots this makes your app seem like its process never got killed.
- Game Controller Support. This looks awesome for the gaming crowd. Watch out console makers! Did I mention SpriteKit makes it easy to build awesome 2D games?
PS: be sure to check out the WWDC 2013 videos online!