I’ve made no secret of how excited I am to get started working on Apple Watch apps. At the iPad event last month Tim Cook announced that WatchKit will be coming sometime in November. I’m trying hard to make sure I’m as ready for its release as possible.
So this morning I’ve been re-reading all the official, published information I can find about Apple Watch. While reading through it I noticed that Apple had actually been pretty clear about what developers can expect with the rollout of WatchKit. This has helped temper my expectations and make me more realistic about what will be possible to build at launch.
Apple has said we can expect for there to be a two-phase rollout of the WatchKit APIs. The most concrete exposition of this is the Press Release announcing the Apple Watch (emphasis mine).
Apple introduces WatchKit, providing new tools and APIs for developers to create unique experiences designed for the wrist. With Apple Watch, developers can create WatchKit apps with actionable notifications and Glances that provide timely information. Starting later next year, developers will be able to create fully native apps for Apple Watch.
So to start with we will be given the ability to implement actionable notifications and Glances. This is what I believe we are getting with the SDK release this month.
It will only be later next year that full apps will be possible. It is not a stretch to think that later next year is code for WWDC next June. Likely along with WatchOS (or whatever they call it) version 2.0. There is a delightful symmetry with the history of iPhone OS, where we didn’t get a full SDK until 2.0 (though I’m sure people will similarly jailbreak to get a head-start).
This two phase rollout of capabilities makes a lot of sense. Building a fully native app for a device that you’ve never touched, with a radically new form-factor would be a perilous proposition. Doing that for the iPad was bad enough and that was ‘just a big iPod touch’.
Reading between the lines a bit it isn’t an unreasonable guess that the two initial capabilities will be deployed on top of the Extensions frameworks added to iOS 8. They align pretty closely to the new Notification Actions and Today View Widgets.
This looks almost identical in capability as the new notifications we find in iOS 8, and helps to explain some of the motivations behind the notification system overhaul it included. I expect we’ll be able to opt our apps into these and then be able to show text notifications on the Watch’s screen along with a handful of button options.
I think Apple is being very intentional with their choice of describing these as actionable rather than interactive. This is a single bounce between your app and the watch. You create a notification, send it, and then get sent back the action taken (if any) from the watch. While you could imagine horrific hacks with this to simulate a more fully featured, interactive native app my suspicion(hope) is that those wouldn’t get past App Review.
To learn more about the new structure Apple introduced in iOS 8 I’d recommend watching WWDC session 713. While the details will be slightly different with WatchKit, I’d be very surprised if the concepts varied greatly.
Glances look to be something vaguely like Today View Widgets, though with a few additional constraints and caveats. The examples we have seen so far come from the overview video [@ 2:22] and the iPad event’s preamble.
These eight examples in aggregate give us a few clues about what types of things could be possible to program here (though this is entirely speculation).
- On-going: For the recipe example to be useful you’d expect the clock to count down. So the Glance has some sense of on-going computation, rather than simply being a static image. This could be done on your iPhone and then shipped over to the Watch or running locally.
- Animatable/Custom: The fitness tracking example loads with the circles filling in progressively and has a layout completely unlike the others. My suspicion is that while these widgets will need to be very lightweight in construction, we’ll be able to define their appearance in a rich manner. Something similar to the Today Widget APIs where we get an NSExtensionContext to live within.
- Minimally-interactive: Both the physical layout (as a collection of swipeable tiles) and contents of the examples suggest that these aren’t especially interactive. I’d suspect their purpose is primarily informational, acting as a second screen for their hosting apps running on the iPhone. Most interestingly though the Starwood Hotels Glance includes a single tappable link/button. I’d expect things like this to be the extent and type of interactivity permitted.
Next June at WWDC I then expect we will receive the tools necessary to build out more fully capable applications. Just like we have seen with iOS I’d guess this will be a progressive expansion of capability with each successive year. Just as early iPhone OS apps were severely constrained to save battery life, we’ll probably see strict limits on what types of apps we can build initially. We are essentially resetting the battery life equation with this new device. So no background processing or multitasking for a while (with the possible exception of music/audio playback).
Apple has indicated that a few “special partners” have received early access to WatchKit. This will probably also extend out to the Native Apps arena. Apps like Twitter and Facebook are probably going to have the ability to make richer experiences before developers at large. I do, however, hope that Apple doesn’t maintain this tiering for too long. I’d rather have a brutally strict App Review process open to all, than a two-tiered ecosystem.
I couldn’t be more excited to get started. Like I said yesterday I’m increasingly convinced that a device of this class will radically change how I interact with my iPhone. I have a long list of ideas for how I could enhance my existing portfolio with the first phase of capabilities (along with a few new ideas). Then an even longer list of ideas for what could be compelling native apps to build next summer.