Benjamin Mayo recently built his first watchOS app, a companion to his iOS app for scanning and creating QR codes, Visual Codes. On his blog he outlines his experiences developing for the Apple Watch, focusing particularly on how limited third-party developers are with their apps.
Apple engineers are using a completely different technology stack to create the system apps. They get to real write real iOS apps with a watchOS appearance theme, essentially. Third-party developers have to use WatchKit — a completely separate abstracted framework that exposes only high-level interface objects (whilst creating UIKit components under the covers).
The current WatchKit API leaves no room for invention. iOS innovations like pull-to-refresh came about because the iPhone OS UI frameworks were flexible enough to let developers and designers run wild with their own ideas, if they wanted to. Some of these custom controls worked so well Apple later incorporated them as standard components in UIKit. That free reign creativity simply can’t happen on the watch at the moment. Apple defines what is possible.
Apple has clearly invested a lot into advancing the Apple Watch from a hardware perspective, and even in the native OS experience – both key areas to grow. But Mayo puts the spotlight on an area that’s clearly lagging behind.
In past years the lack of tools available to make third-party watchOS apps was less important, as the Watch itself still bore several key limitations – slow hardware, a confused OS, and being tethered to the iPhone. Few developers cared about being creative with Watch apps because everyone knew the Watch could barely handle the vanilla apps of the time anyways. It’s a testament to the recent evolution of the Watch as a product that WatchKit’s shortcomings now appear so disappointing.