WWDC: Under-the-hood

Image via MacStories

Image via MacStories

This week is the biggest week of the year for those, like me, that develop on Apple’s platforms. While there are typically few hardware releases, if any, at WWDC anymore, all of the software updates help us see what will be coming to current devices and hint at future ones.

A lot of where Apple is heading was previewed in broad strokes in the keynote on Monday. However, there’s also a a ton more information that is available online for developers as they start to take apart the developer copies of both iOS 9 and OS X El Capitan.

Last year, with iOS 8 (and OS X Yosemite), Apple made some significant improvements that made both platforms increasingly useful, especially when used together. This year, while there were new some items for both platforms, it felt more like an under-the-hood release. That isn’t a bad thing, though. There are still some great things that were announced that might not gain much mainstream attention, but are nevertheless extremely important to the developer community and have a noticable impact for consumers.

App Thinning

Image via Ars Technica

Image via Ars Technica

In 2005, Apple was transitioning its Mac line to Intel processors. To work on both older PowerPC Macs and new Intel Macs, developers were given the ability to create Universal binaries. Essentially, developers could create one application binary that could run on old PPC systems or on Intel. The packaged app could thus work on any Mac at the time.

While not needing to think about device changes, iOS developers are also writing programs for a number of different device types. Processors before the A7 were 32-bit as opposed to 64-bit as they are now. Changing Retina screens and display sizes mean providing images at multiple resolutions. Apple has made it really easy to provide support for all of these different devices. But does your iPhone 5 really need to download app data that only pertains to the iPhone 6 Plus hardware?

App Slicing – the key mechanism of Apple's App Thinning in iOS 9 – will let iOS 9 devices download just the parts that matter. Developers don’t need to do any work on their end, so they can easily support all of Apple’s iOS device line up. Meanwhile, the App Store will just give users what they need for their device. For some apps, this could mean a significantly smaller download, especially if there are a lot of custom graphics in that particular app.

Additionally, Apple is introducing Bitcode to the submission process. It is an intermediary representation of the application binary that the App Store can optimize before being delivered to a device. It also lets apps take advantage of future compiler optimizations and processor capabilities without needing to be resubmitted by the developer.

Overall Performance

New features are great, but if they begin to cause your device to slow down, then there comes a point where new features are detrimental to the user experience. However, both iOS 9 and OS X El Capitan are said to offer performance improvements.

I have spent the past couple of days with iOS 9 and, while obviously only the first available developer beta, the experience seems to be fairly close to what I had on iOS 8.4 (also a beta ahed of its release laterthis month). While I don’t feel the new Proactive features are fully functional yet, I have a feeling that my iPhone 5s will perform just as well as it did on iOS 8 while still adding the predictive and proactive intelligence that Apple is building in. You can never use a beta release to truly judge actual battery life and performance, so as we get closer to the public release, we’ll likely see just how much better iOS 9 performs on iOS devices.

As much as I want to try the OS X beta, I have held back. The Mac is my main machine, and I’m a little pickier with the operating system I run. However, I have a couple of friends that are running the OS X El Capitan beta and both have said the same things to me: their Macs seem to be faster than they were on Yosemite. Between the overall improvements to the system, as well as the introduction of Metal for OS X to improve applications that work with the GPU, it’s amazing that such performance increases can come just from a new operating system. I, personally, am glad that Apple is able to provide these improvements in software updates instead of just hardware updates.

Behind the scenes

While not a huge feature dump like last year’s WWDC, there are still a lot of new things for developers in particularl to drool over.

Last year, Apple debuted iCloud Drive and CloudKit, an easy way for developers to make use of iCloud in their apps. But with an impressive amount of storage for a free service, it seemed to lock in user data to Apple devices. This year, however, it looks like Apple is planning to expand beyond that with CloudKit JS. CloudKit JS lets developers build a web interface that can access the same data containers as iOS and OS X apps. So developers working on an app with some kind of iCloud storage, perhaps a new social app, can make a compliment website to go with it. This opens up a lot of possibilities for developers and likely will make iCloud more attractive for in-app cloud syncing and storage.

As a gaming platform, iOS and OS X continue to become more and more impressive. Metal’s introduction last year helped pave the way for more GPU intensive games on iOS, and Metal moving to the Mac this year could bring vast improvements to apps such as Adobe After Effects and Adobe Illustrator. This year, Apple is introducing two more frameworks that will definitely be useful to game developers and could be useful for other means as well: GameplayKit and ReplayKit.

GameplayKit is a framework to help with game development. Features include classes to help with entity pathfinding, randomization, complex game logic, state machines, and entity behaviors. Mix that in with SceneKit, SpriteKit, or a third-party game engine, and you’re looking at powerful games built with native Apple frameworks. I’m tempted to make a game myself now that all of this is available.

And then there is ReplayKit. While designed for games, there are many applications for this. Essentially, ReplayKit is a framework that makes it easy for users to record video of the app content, allowing the user to then edit and share that video with others. No doubt, some games will use this for sharing in-game videos, but it could also be used for such things as making tutorial videos. I see this one being important beyond games.

My thoughts

WWDC.png

Overall, I’ve got mixed feelings about this year’s WWDC. As a user, I was blown away by last year’s announcements in iOS 8 and OS X Yosemite. And the introduction of Swift was a huge surprise. The developer half of me seemed overwhelmed by it all, though. Even now, I feel like there was a lot that I missed.

This year, though, I felt differently. The Apple user in me wasn’t overly thrilled by the front-end improvements. Yes, I think the split screen features in iOS and OS X are huge for users, and I’m excited to try them out. But it’s the developer related material, what WWDC is all about, that always has me most intrigued. I don’t feel stuffed like I was last year. This year, I’m... content.

There’s always a lot that is revealed through the entire week of WWDC. The keynote on the Monday only provides a glimpse. Looking beyond that initial glimpse and you can see a lot of tools that can only benefit developers and continue to help grow the entire Apple ecosystem. As for where this will lead Apple, there’s plenty to read into. All of the added gaming frameworks make both iOS and OS X attractive platforms for future games. App thinning techniques show that Apple still cares about people that have 16GB devices (though I’m hoping we won’t see 16GB as an option for new devices anymore). And I wouldn’t be surprised if new Apple TV hardware ends up allowing for native applications, including games that use the aforementioned frameworks.

Of course, there's much more that developers now have thanks to this week: Apple has increased TestFlight limits, so developers can get beta copies of their applications to more people for more feedback; improvements to code testing and, now, user interface testing, give developers better tools for refining their apps before release; and now, for the first time, new developers can create a free developer account, download Xcode 7, and test their applications on device without having a paid program membership.

With everything announced at WWDC this week, it’s time for developers to dive right in and spend time with everything new. Apple will release both iOS 9 and OS X El Capitan to the public this fall, with an announcement of the release being made at a (likely new iPhone) media event. This gives developers just a few months if they want to have apps ready for the iOS 9 release. If you’re a developer, there’s no better time than now to get started!