The possibilities of wearing an internet-connected, location-aware computer on your arm seem endless. But the Apple Watch of today isn’t there yet. As developers have learned over the last seven months of building their own apps, there are heavy restrictions on just what they can do with the platform’s Apple WatchKit software development kit (or SDK*)—a series of limitations that are likely connected to conserving battery and tightly controlling user experience. And that will severely limit the functionality and originality of the first Apple Watch apps we see.
I talked to developers from the social media titan Tumblr, UsTwo (creators of the hit iOS game Monument Valley), the consulting firm labs108, a major Apple developer who would rather remain anonymous, and the Austin design studio argodesign about the watch’s current limitations. Here are their complaints:
The biggest complaint that I heard again and again—and the issue which many problems stem from—is the fact that the Apple Watch doesn’t actually handle the code for its own apps. Apple Watch apps actually run on a connected iPhone, then beam relevant information—words, images, etc—to the watch to display.
That means the watch isn’t doing some very basic things which normally help to make user experience great. For instance, if your watch goes out of the range of your phone, third-party apps will just die. But an even bigger complaint is that there’s no way for developers to render nice, dynamic transitions within their apps—those animations that seamlessly react to your touch and blend text and graphics movements in every modern app you know. And the watch SDK itself isn’t filling that gap with turnkey, pre-programmed solutions.
"We’re missing a core basic thing . . . simple transitions," explains Anton Doudarev, developer at UsTwo. "[Everything] feels like it’s a little bit choppy now."
For now, developers have to use workaround to achieve the same effect. They can technically render up an animation on the iPhone—think of this as a low framerate animated GIF—then beam it over to the watch. But that’s slow, and not dependable.
"You don’t have a guarantee on how fast that’s going to be delivered," explains Matt Bischoff, the iOS Engineering Lead at Tumblr. "We use animation to delight our users, and have meaningful transition between states. If you have to wait for Wi-Fi or Bluetooth, it’s not worth it."
Furthermore, you can’t animate just part of a screen. The SDK doesn’t allow you to animate only a button in the lower left hand corner. Every animation beamed to the Apple Watch has to come full-frame.
Couple that problem with the fact that developers don’t have control of how their content scrolls on the watch, and you hit some severe design limitations.
For Labs108 founder Deepak Agarwal, who was coding the global time app Circa, he encountered a very simple design problem: splitting the screen into two zones. He wanted to be able to lock a user’s current location and time on top of the screen at all times, and then allow someone to scroll through other times right under it.
This approach makes a lot of sense! It would ground the user in their current timezone while exploring others. On the iPhone, this is a simple maneuver, executed through iOS’s popular Table View. On the watch, it wasn’t possible.
So you have these apps that run on the iPhone displayed on your watch, but then, that couples with the fact that iPhone to watch communication isn’t really in real time. It's asynchronous by nature. Information is sent back and forth through short notification bursts, rather than a continuous, real-time link.
So why does this matter? It can be hard to keep the phone and watch in sync. UsTwo encountered major problems trying to create a very basic timer app that you might start on your phone, then follow on your watch.
"It becomes out of sync in some way or another," Doudarev explains. "If you start a timer on the phone, and you have to communicate it to the watch itself, you have to have both open at the same time. And if you open the Watch Kit app a moment later, the timers don’t coincide at the exact same moment. The Apple Watch timer might start a split second later, then you have out of sync timestamps."
In other words, your phone might read 17 seconds, while your watch reads 16 seconds. But this timer is really just an illustration of how Apple has set up their watch to be a casual, second screen to the iPhone, and how that impacts app design and development.
Apple has a basic sketching app for the Watch. It allows you to beam little doodles to friends. But no other developer can take advantage of the touch screen in this way. The SDK only recognizes the most basic of gestures, like swipes or hard presses.
In the case of argodesign, who put together an Apple Watch complement to its PEQ home automation iOS app, it had to change the way one of its buttons worked. While someone could drag their finger up and down on the iPhone to change the temperature or dim the lights, that simple touch-screen gesture wasn’t possible on the watch. So the watch experience couldn’t mirror some of the core behaviors found in the iOS app, even though the interaction itself was perfectly valid, and comfortable, for users.
"I don’t know if Apple can’t technically can’t do it due to processor speed, but I suspect, more or less, it wants people to interact with the phone differently. It's basically encouraging people to use the Crown," argodesign founder Mark Rolston explains. "We have arrows you can use on the screen to tap as well, simply because that’s a carryover, but we’d like to do dragging, and it’s not possible right now. It doesn’t provide simple code for that."
But for developers, this not only means that simple touch-screen interactions are off the table, but that new, interesting experiences Apple teased during the big unveil are off the table, too.
"A lot of what might be interesting is the doodling, the communications, anything you start from the watch," explains an anonymous developer. "Even something like being able to doodle on your watch, being able to share those pixels to a server and have that be recorded, you can’t do that."
"I’d love to see someone using some kinds of touch gestures that are custom to send messages under the table at a meeting," Doudarev adds later. "That’s one of those ideas that, if it was possible, it’d be great. But you can’t track any gestures, or pattern recognition, of any kind."
Of course, the statement "you can’t track any gestures" only applies to third-party developers. Apple does track these gestures for its own apps. And in fact, preferred partner apps get access to things not commonly offered by WatchKit, too. The most commonly cited example was that the Shazam app has access to the watch’s microphone, even though others don’t.
Additionally, Apple’s own apps run natively on the watch, meaning they can be more fluid than those made by external developers. This creates an inherent issue where it’s impossible for most third parties to put their best foot forward, and to look as competent as Apple. And it’s even tougher for a no-name company to break out.
"There may be a chance for some indie devs to do something innovative or interesting that no one expected, but it doesn't seem like there’s a big chance of that happening," an anonymous source says.
This issue may be no more apparent than in the Apple Watch faces themselves. Independent developers can’t code these faces as they can for Android Wear, and yet, the face might be the core way most users interact with the watch.
"I’m not sure people are going to be launching that many apps through the day on their watch. It’ll be about the notifications, the glances, and the watch faces," Bischoff explains. "If someone’s obsessed with Tumblr, I want them to have a Tumblr watch." A Tumblr watch face could reflect someone’s individual Tumblr feed graphically, but it could also contain news and notifications, to serve as a launchpad that circumvented opening the Tumblr app. If the Apple Watch turns out to be a platform that’s more about one or two power apps than a few dozen, every developer in the world will want the opportunity to be that app. And it seems that the best gateway may be to take over the watch face itself.
Apple is launching their watch conservatively, limiting the capabilities of the hardware for any number of reasons we can only speculate about—including battery life, software stability, or even their desire to train users and developers in best UX practices before enabling more options.
And yes, Apple will allow developers to code native Apple Watch apps by the end of the year, which will probably bring some of these features with it.
But the Apple Watch that will ship on day one won't be the Apple Watch of fanboy mythos. It’s a severely limited piece of technology with UI that will feel dated. And there’s nothing that the world of developers can do to improve the platform or create some paradigm shift until Apple lets them.
* It's worth noting that technically Apple isn't calling WatchKit a full "software development kit" or SDK. Given the kit's limitations, it's not surprising that Apple is making the distinction. But with no other way to categorize the code than that, developers used the term "SDK" frequently when talking about WatchKit, so I did too.