I’m on a plane flying back from San Francisco to Stockholm by way of London. It is midnight, outside my window I see endless snowy peaks of Greenland, and around me my fellow travellers are hunched over glowing Macbook screens writing multicoloured text in Xcode. I, and it seems, about a quarter of this flight are returning from Apple’s World Wide Developer Conference (formally abbreviated to WWDC, but for those on first name terms it’s “dub dub”). Around the plane I see new API’s being put through their paces in Xcode, conference session videos being watched, and apps being demoed to fellow travellers.
WWDC is the biggest annual event in the calendar for iOS developers. Massively popular, the 5000 attendee tickets are distributed by a lottery system where applicants ‘win’ the opportunity to buy a ticket.
The event is an intense five days of sessions presenting new technologies, and labs where code and design can be discussed with Apple’s engineers and designers. It’s been a few years since Apple attended any of the computer industry or home entertainment trade shows, as a result WWDC has become the only venue for face to face interaction between its designers and engineers and the rest of us.
This year I was amongst the 80% of attendees who were first time visitors (a cynical individual might question the value of this statistic since Apple decides who will attend, but even with that, perhaps it’s interesting to consider this as Apple signalling the profile of developer they are most interested in right now). I found the experience incredible, it was five days of intense education and inspiration at the conference, each day peppered with events hosted by third parties around San Francisco.
The main event of WWDC is the preview of new versions of iOS and Mac OS X, and for the first time this year watchOS. The headline features of iOS9, Mac OSX 10.11 “El Capitan”, and watchOS 2 were previewed in the globally streamed keynote and preview versions made available to developers worldwide immediately. The list of new features added in these releases is long and has been detailed exhaustively els
WatchOS 2 has really only one headline new feature; “native” apps. I use scare-quotes because native has a different meaning on this platform than others. There are two key wins here for the user; apps will perform much faster and can continue to work (in a limited manner) when you’ve walked out of Bluetooth range of your iPhone. WatchOS 2 apps run their application code on the watch hardware, in comparison to current watch apps which run their application code on a nearby iPhone and the UI layer on the watch. This is such a performance win for apps that one is left wondering why Apple bothered allowing the current structure of apps to exist at all.
The independence of Watch apps from an iPhone, even with a “native” watch app, is limited. Technically watch apps rely on the phone for most of their network access and bulk data storage. Additionally WatchOS 2 continues the rule that its apps must be distributed as part of an iPhone app. This enforces Apple’s conceptual approach to what the watch is for; app experiences on the watch should be an augmentation to a phone app. This approach greatly simplifies the user task of discovering and installing apps, many of the phone apps you use everyday probably already have an accompanying watch app, but it brings the cost of a loss of flexibility. While watchOS 2 didn’t bring any real surprises, it does take a big step into making the watch a viable app platform.
ewhere, so I shall keep comment to those I find most interesting. Starting with this year’s newcomer, the Watch. Not available yet here in Sweden and Apple are already previewing it’s second generation operating system.
Years ago Intel introduced the “tick-tock” model for developing and releasing their processors; one year would bring significant design changes (the tick year), and that would be followed by manufacturing refinements the following year (the tock). For iOS and Mac OSX, this year can be considered a “tock” year.
Both platforms received relatively minor updates this year compared to the avalanche of change in the last two years. The most exciting to me are the iPad specific changes: split screen, picture in picture, and the addition of trackpad style text cursor movement to the system keyboard. As is so often the case, Apple is not the first to offer split-screen multitasking on a tablet but their implementation looks solid and well considered. Supporting split screen will have significant repercussions for app makers, an app must now be able to transform between iPad GUI layout and effectively iPhone layout at any time in response to the user triggering split screen mode.
Some other personal favourites amongst the new features announced: The Metal graphics API on Mac OSX promises to radically speed up animation and 3d graphics, this appears to be born-out in the El Capitan beta – system animations and responsiveness on my Retina Macbook Pro are much improved over Yosemite.
In a slightly eyebrow raising move, Apple has given developers an extension point in iOS which allows system wide filtering of web content. This means ad-blockers on iOS, finally. It will be interesting to see how this plays out, as mobile advertising is such a large part of the industry’s monetisation strategy for mobile. It is hard not to see this as an aggressive move against Google.
Another user win is Application Transport Security, this is essentially a fancy marketing name for the now “safe by default” behaviour of networking subsystems in iOS. While app developers can disable these additional safety measures (and I’m sure many less-considerate developers will do this just for short term convenience), moving iOS from an opt-in model for security best practices to opt-out is a meaningful change. I hope this will push developers to improve app security across the board.
Apple’s darling new programming language, Swift, got a major update. For the last year, I have been in the privileged position of writing Swift code full-time, and I was very excited at the announcement of Swift 2.0. The immediate improvements to the language are exciting, but also, Apple has re-pledged its commitment to rapidly improving the language. I shan’t go into the detail of the changes in Swift 2.0 here, but suffice it to say that I am confident they will further aid developers in creating high quality, maintainable code, and with it wonderful apps.
In addition to the product announcements many more messages of policy and intention were delivered by less direct means. Slowly but surely Apple is opening up. Both in corporate communications and in its products. Head of marketing, Phil Schiller, joined John Gruber as a surprise guest for a live recording of his podcast, The Talk Show, in front of an audience of developers on the Tuesday evening. Chris Lattner, creator of Swift, attended a live panel discussion on the same on the Wednesday night hosted by Realm.
This new found openness is found in products too; Swift 2.0 will be open-source by the end of the year, and even the “walled garden” of iOS is becoming less restrictive. Apps on iOS have historically been an island, unable to talk to or even know about other apps on the same device. This changed significantly last year with the introduction of app extensions, which allows 3rd party apps to offer services to the system and each other (such as; Save to Dropbox, Share to Pinterest, etc.). This has continued this year, with the introduction of new APIs to expose in-app and web data to the system-wide search. Now typing into the ‘Search iPhone…’ field will be able to find you recipes inside apps instead. And the gold plating? Integrating into search gets you integration into Siri as well.
I mentioned a policy changes. Apple has finally removed the ‘paid developer program member’ restriction from compiling and installing an app from Xcode to a developer’s device. Anyone will be able to download Xcode 7, write code and run it on their own iPhone. This dramatically lowers the barrier to entry for fledgling iOS developers and is a great move on Apple’s part.
While there is a huge amount of other news and details I could go into, this covers the highlights of the week’s announcements for me. Apple now has three months to finish off these features and prepare the new operating systems for their September release. While that is going on we at Screen Interaction will be testing and updating our clients’ apps to make the most of the new platform features. I’m particularly looking forward to seeing how the Länsförsäkringar watch app can be improved with the new watchOS features.
While I look forward to next year’s event, I will dive back into writing Swift and building apps for our fabulous clients. Oh and I will be catching up on the remaining 70 hours of WWDC session videos I haven’t seen yet!