This year's Apple World-Wide Developer Conference (WWDC 2014 or WWDC14 or just dub-dub) has concluded. There are over 100 videos, each an hour long, covering all the new updates to iOS and OS X now available at the developer portal. For the first time in its 25 year history, the keynote was live streamed in its entirety. The first day of the conference consists of the keynote (open to all, not just developers) and the remaining four days consist of developer-only content This content is composed of two types of events: technical developer sessions and labs where you sign-up to interact one-on-one with Apple Engineers.
With the videos of the sessions available so rapidly, the argument is that the labs and the community are the only reason to attend now. With Alternate conferences taking advantage of this sentiment and being available during WWDC in San Francisco, there are hundreds of developers who now go to SF without tickets to have it all but the labs.
This is usually a 2-hour event where Apple presents its latest software updates and new hardware. The predictions that surround WWDC are what the keynote will introduce and which Apple manager will be present during it. This year's predictions ranged from a new category of device, like the iWatch, a new iTV, Retina iMacs, larger iPhones, and the rumor mill had tons more predictions with levels of certainty based on people familiar with the situation. What did the world end up seeing?
With surgical precision, the keynote was kicked-off with a 5 minute (exactly 5 minutes to the second) video about developers. If Apple wrote a love letter to developers, this is what it would look like. This was about the developer going mainstream, and as an iOS developer it's a message that I have seldom heard from Apple. This was a new Apple - a kinder, gentler Apple that loves developers, especially iOS developers.
The Apple Keynote structure, that has been repeated and used like a formula, is to open with numbers on retail. This year, since the event was completely developer focused, that script went out the window. Sure, the developers received numbers - but numbers that are important from a developer's perspective. This keynote was the herald of what was to follow - structured as a three act play to discuss the Operating Systems of both the desktop and mobile devices plus the updates to the developer tools. Although they did not announce any new devices, this was arguably the largest WWDC software product announcement in the history of WWDC. Tim Cook claimed this was the "Mother of All Releases" and this sentiment was repeated in multiple sessions throughout the conference as being the largest update to the iOS SDK since the SDK. And they weren't kidding.
The Top Ten Technologies
Here are the top ten things that I think are crucial for iOS developers to learn and become familiar with before the launch of iOS 8.
10. SpriteKit with SceneKit
For casual game development, which is the most popular app type in the AppStore as well as the most lucrative, the upgrade to SpriteKit promises to make the iOS 7 feature even better with the OS X SceneKit thrown in for good measure. SpriteKit is Apple's 2D graphics API that now sports per pixel collisions, field forces, inverse kinematics, shaders, and is high performance oriented. SceneKit is like SpriteKit but for 3D with particle systems, physics, field forces, and shaders.
Continuing the push in gaming, Metal is Apple's new low overhead, highly optimized pipeline of the GPU. This may be too low-level for the casual game developer but having Apple provide this means that game engines have a deeper integration with the hardware and a new low-level way to access the graphics hardware translates to better game engines for developers.
This new Kit allows you to write client-server apps without needing to write the server. Apple now takes care of providing a NoSQL database that supports records, relationships, queries, and large data blobs. Also, Apple is providing what looks like a great developer portal for you to manage your service in the cloud. And, if users use iCloud, they do not need to create new user accounts for your app which is a great win and leverages the ecosystem. Plus its free to use up to one Petabyte of assets which is a mind boggling one million gigabytes or about one thousand terabytes of assets.
This is an iOS first. Extensibility takes the secure sandboxed app and provides a way for app developers to provide system services (the extension) to the OS in order to ultimately enable communication between apps - something not possible before. These extensions are embedded in an App and become alive out-of-process on-demand in order to share data and provide remote views to other applications through iOS.
6. Notification Center Widgets
A type of extension, the Notification Center Widget is a helpful utility that sits in the Notification Center and helps provide simple interactions with your app. It will be interesting to see how far this can be taken and whether a whole app can live as a Widget.
5. Keyboard Extensions
Another first for Apple, developers can now provide their own keyboards. This paves the way for more languages and new input methods.
4. iTunes Connect Updates now with Testflight
There are new features in iTunes Connect, which tie directly to what users see in the AppStore. These features include app Previews, which are a welcome addition, providing users a 30 second maximum video of an app walkthrough instead of just having only five screenshots. App bundles is a new way to combine up to ten of your apps into a single suite of apps in order for the user to discover your other apps. iTunes Connect also provides better analytics and integrated Testflight Beta testing that increases the previous 100 device limit to 1000 users. The only issue with Testflight now is that you need Apple to provide app approval in order to Beta test. This may slow down Betas.
3. iTouch API
Developers can now provide local authentication using the biometric Touch ID sensor in their App. This would indicate that iPads with Touch ID sensors should be on the way in the Fall and one wonders how long until we see a Mac laptop with a Touch ID.
2. Interactive Notifications
Developers can now provide the user with custom actions in the notification banner and even work in the lock screen. This has the potential to change the way we interact with Apps and our iOS devices in general.
This is the first modern programming language from Apple in 20 years, and it is the answer to the question of what Objective-C would be like without all of the C baggage. The director of tools development has been working on this secret project for four years, and has added amazing modern language features such as closures, generics, multiple return values, optional arguments, type inferencing, the elimination of both headers and the need for semicolons. The best part about Swift is that you can mix and match your project with both Objective-C and Swift and target either iOS 7 or 8, so it's not all or nothing. Plus, you can pour in Swift at your own pace.
The response to this introduction has been nothing but viral with dozens of Meetups springing up organically across the world. This Apple-sanctioned language promises to make app development more inviting to new developers, easier by reducing the learning curve, and has the potential to shake up the app economy. Learning Swift should be on every developers to-do list and knowing Objective-C as a first language will ease the transition.
0. Xcode 6
Let's not forget that for every item they announced, Xcode needs to tie together and support dozens and dozens of these new features to enable the new technology. For example, Xcode 6 fully supports Swift integration and provides the Interactive Playgrounds. Xcode 6 also has updated its built-in Sprite Editor for SpriteKit and SceneKit. The same is true for Extensions as Xcode 6 provides support for Extensions in the area of new templates, scheme settings, debugging, and updated simulators. Xcode 6 also provides support in the Storyboards for the new Size Classes that enables the Adaptive UI and the previewing of device / orientation / and locale in Xcode. Adaptive UI is the strongest hint yet for new device sizes in the Fall. If that wasn't enough, Xcode 6 also has updated Asynchronous and Performance Testing tools as well as a brand new design and layout for Instruments and updated Xcode Bots. There is even a new feature called View Debugging, which is a live, interactive way to dive into the details of your running app's view hierarchy and see a 3D perspective of it. Learning what's new in Xcode 6 as a developer is essential to being an effective developer.
There was much, much more announced than what is included on this list such as HealthKit, HomeKit, WebKit updates, Adaptive View Controllers, Continuity and Handoff. The list goes on and on, but I think the list above represents the bare minimum of what an iOS developer needs to be familiar with in order to be prepared for the launch of iOS 8 and for the new devices that are destined to ship with iOS 8 in the Fall.
In the weeks ahead, we will deep-dive into each of these topics in my iOS Quick Read column. We will come to understand why, if Apple could have written developers a love letter, it would have been exactly what we received this year at WWDC. If you feel there was an announced technology that was missed and should have made the cut, please let me know in the comments below.
In the next article we'll explore Swift.