Back in September, Apple finally unveiled their next major hardware platform, the Apple Watch. The first question developers asked was “How do I write apps for this thing?” Today, Apple finally revealed their initial plans for third-party developers. Over the last several years, the iOS SDK has become home to millions of developers, but it didn’t start out that way. The early stages of developing for iOS were far more humble and rugged than the hallmark mobile platform we see today. Developers who’ve been around since the beginning will not, or rather should not, be surprised by the WatchKit APIs. For those developers who missed out on those early years of iOS development, they may be in for a bit of disappointment.
What’s there now?
Apple has created a few different ways for developers to leverage the Apple Watch, ranging from native apps to customizable quick interactions built into the system.
Right out of the box notifications sent to your iPhone will, by default, be sent to your Apple Watch with no additional work required from developers. iOS 8 included a new feature that allows developers to specify custom actions right from a notification, which naturally transitions to the Apple Watch interface. It’s a feature that developers were excited to have for the iPhone alone, but it’s now clear Apple had much bigger plans for that feature, expanding the experience across both the phone and the Apple Watch. That’s not all that developers can do with notifications. Apple has released an expanded notification capability called Actionable Notifications. This feature allows developers to create a more integrated experience for a notification on the Apple Watch.
Apple Watch is a wearable on your wrist, so naturally one of the biggest use cases will be people wanting to quickly look for and receive information. WatchKit includes a feature called Glances, which allows developers to create a small, single screen experience that can be added to a system menu and launched simply by swiping up on the display. These views are read only, but selecting any part of the glance view will take the user directly to the Apple Watch app. I suspect most users will only have a few glances configured, as it will be cumbersome to swipe between several glances to get to the one you actually want to look at. Thus, this will become a battle for glance space. If a user is going to add a developer’s glance to their menu, the glance will have to be worth the user’s limited real estate, meaning it will need to be better than great. As a developer, I’d recommend for any user thinking about setting up more than 4-5 glances at one time, just launch a WatchKit app to get to the same information!
Which leads us to the last way Apple has opened up the platform to developers, “native” apps. WatchKit allows apps to be loaded onto the Apple Watch home screen, giving users the ability to directly launch a third party app. Third party app development is a key component for any platform these days, so it’s no surprise that Apple is providing a way from the beginning for third party developers to create richer experiences for the device. Apps will be loaded on the Apple Watch via the new Extensions framework released by Apple at WWDC–another example of Apple continually planning for future state and thinking bigger with every item released.
These apps will likely look similar to other apps on the Apple Watch. Apple is recommending all apps have a black background, and that developers use the entire display for content, meaning there is no need to account for margins on the edges of the screen. The bezel of the Apple Watch is designed to give padding directly, encouraging developers to leverage every pixel available to them for displaying content.
Apple has also provided a set of standard user interface objects for developers to display content within the apps. These include the items you would expect, such as labels, buttons, images, tables, sliders, and switches. They’ve also provided the ability to display a map, though that map is static with no interactive capability. Touching the map in a third party app will open up the native maps app on the Apple Watch. There are two new types of UI objects–a date display object and a timer count down/count up object. In the past, developers would have to develop code to dynamically update the UI to show changes in time, but Apple has now provided a first-class UI object to handle all of that complicated code. Here’s to hoping that it makes its way back to iOS soon.
Even though Apple has provided third-party developer access to the platform from day one, there are still some pieces missing. Most notably, third-party apps for the Apple Watch appear to be constrained in their capabilities, at least for now. Apple is exposing two types of app navigation for developers–hierarchical drill down navigation, and paginated left to right screen navigation. Apple also recommends limiting the number of items in these types of views to be less than twenty so as to lessen the difficulty of scrolling through content. Developers and designers must live within these constraints for now, and may find themselves unable to recreate the richer experiences that Apple is providing in the first party applications currently found on the Apple Watch. Admittedly, this is frustrating, but true to form. I bet–or hope–to see more access from Apple in the future.
One glaring absence in WatchKit is developers will not be able to leverage the digital crown in creative ways whatsoever. For now, it’s limited to scrolling through lists and fine tuning values. Developers don’t have access to create rich zooming experiences that can be seen in the Maps app or the Photos app. This will surely frustrate designers and developers alike. In addition, developers are not able to add custom gestures to their interface. WatchKit will provide callbacks when items are selected, but other than that there is not a richer support.
Animation also appears to be lacking. For now, developers will be creating animations on the Apple Watch by using a predefined set of images. There is no way to create dynamic animations in code and display them on the device–at least not yet.
Just like the iPhone 6, developers still don’t have access to the NFC chip included in the Apple Watch. There was some initial excitement around that feature when Apple demonstrated the Starwood Hotels app at the unveil event in September that allows users to unlock their hotel room, but that feature uses Bluetooth LE, not NFC. Apple has a history of allowing more access to advanced hardware features like Touch ID over time, and we can hope NFC and the digital crown follow those same patterns.
Third-party apps will simply not run on the Apple Watch if a phone is currently not paired. That will surely annoy some exercise/fitness app developers, as users will not be able to leave their iPhone at home if they want to use their apps while working out.
Apple made a big deal about subtle sounds and the haptic feedback engine, but it appears this is off limits to developers for now. This will limit developers when trying to build engaging, long-running experiences on the Apple Watch, and falls more in line with Apple’s current guidance, which states that Apple Watch apps should be designed for seconds of interaction rather than minutes.
Where do we go from here?
Apple is moving very quickly here, but developers don’t have access to everything on day one. I expect most developers and designers will feel “handcuffed” in the short term. If you recall the original iPhone OS 1.0, the only supported way to create third-party apps was to create rich web apps. In fact, it took nearly 18 months after the announcement of the original iPhone before developers were finally granted access to develop and ship native apps for the platform. It’s almost comical reading that press release now knowing how successful the app store has become, but Apple only has so much engineering power, so we can’t expect perfection on day one. Developers may feel limited in what they can do with the platform today, but I expect that to change over time, and I expect that to change quickly.
WWDC 2014 was overwhelming and unexpected due to the shear amount of capabilities and features Apple released to developers. Looking back now and knowing what all the Apple Watch engineering was happening alongside and on top of further indicates just how much Apple is currently working on. It’s a huge scope of work, and if 2014 is any indication, it may only continue to accelerate. It’s ok to let Apple take their time to get the WatchKit API right, as to make sure we’re building on a solid foundation. Apple has made a huge investment in the iOS platform over the years, building up the blocks and the tools necessary for the next generation of devices that will be using them. They are now cashing in on the return of that investment, which will allow Watch capabilities to increase rapidly. With each passing Apple Event, Tim Cook’s mantra of “Only Apple” becomes more and more obvious as they reveal more and more of what they have been working on.