Details regarding what Apple might announce at WWDC have been few and far between this year, but here is my thoughts and predictions:
Apple are set to launch a “new” music streaming service alongside iOS 8.4 this month, based on the technology that they acquired from Beats last year. The service will cost $10 per month and will also likely spell the end of iTunes Radio, as curated Playlists will be part of Apple’s service and would form the core of any free plan.
iOS 9 is set to be a “Snow Leopard” release, focusing on cleaning up the ruff edges that have been there for a couple of years now. A variant of the San Francisco font is expected to be adopted as the System Font (as seen on the Apple Watch and on the MacBook Keyboard) but this is set to be the most significant, albeit minor UI change.
Since the introduction of the Apple Watch it has become even more apparent that Apple needs to improve its notification handling and filtering, possibly based on the notification categories that are already supplied by apps. The Push Notification API could also be updated alongside OS X 10.11 to allow synchronisation (predominantly read status) across all Apple Devices e.g. allowing a developer to supply a globally unique id with a notification, which uniquely identifies it across all apps from developer.
Transit Directions are also set to make an appearance in the Maps app for capital cities, but I doubt Google or City Mapper have anything to worry about.
iOS 9 also provides the opportunity for Apple to open up more extension points and hopefully default apps. I would also expect Apple to hint at live resizable apps allowing for split screen on the iPad. Force Touch APIs (if they are coming) are likely to be held back until their is hardware to support it.
OS X 10.11
Like iOS 9, OS X 10.11 is going to be an opportunity for Apple to fix any outstanding issues, rather than focus on any major new features. Furthermore, after last years UI overhaul I wouldn’t expect any UI changes other than also adopting the San Francisco font.
An iOS Style Control Center (that was pulled from Yosemite) is set to be introduced, although this could simple be an improvement to Notification Center.
OS X is also set to take a security feature known as “Rootless” from iOS, preventing even Root users from modifying certain system files, in an attempt to prevent viruses an malware.
The most exciting feature (if it comes to fruition) is UXKit. UXKit is UI Compatibility Framework used by Apple in the Photos app, giving them a common API for both iOS and OS X UIs. If UXKit gets publicly released, I would expect a lot of apps to get ported back to the Mac, and a greater uniformity across iOS and OS X apps.
Although we might finally get some sales numbers for the Apple Watch during the Keynote, you are not going to see any Apple Watch related hardware announcements during, but we will see introduction of the Native Apple Watch SDK. The Native Watch SDK will allow apps to run directly on the watch (so hopefully no more spinners) giving developers access to the sensors. With the limited storage, screen space and clock speed it will be interesting to see how much of change there will be when comparing these to the third party apps we have today.
The Apple TV is set to get a substantial upgrade, both in terms of specs and its role in the home. With the introduction of HomeKit peripherals last week, the Apple TV has become the Hub for HomeKit devices, allowing you to control them while you are away. It is also set to get a developer SDK which is set to turn it into a media center and capable games console, in addition to premium subscriptions services to complement HBO NOW. While the introduction of an Apple TV SDK is logical at WWDC, I think the hardware update and subscription services will not be available until later in the year.
Swift & Xcode
Currently the Swift runtime is embedded in all apps that use it, which increases their binary size by around 8mb each. If Swift’s binary interface is now considered stable, the Swift Runtime could now be included with the OS, allowing apps linking against it rather than embedding.
The majority of my Swift issues are more with the tooling than the language, mainly:
- Lack of Refactoring Support
- Long Compilation Times
In addition to this I would like to have a language feature akin to Ruby’s mixins (or something that would allow me to supply default implementations for protocols) which will encourage code reuse while maintaining Swifts strict type checking.
Native WatchKit apps may also see the reintroduction of Wireless Debugging directly for Xcode.