Apple Watch development: no pain no gain
We developed some Apple Watch apps. Here are our thoughts.
In the last couple of months, we have been working on two different Apple Watch projects. We had to deeply explore the framework Apple developed for programming Apple Watch apps: the Watchkit (you can find a good tutorial here).
First of all, as you may already know, Apple Watch apps are not standalone apps. They need an iPhone app to work and the iPhone must constantly be nearby. The development of an Apple Watch app is very similar: you need to open the original iPhone app on Xcode and then add the Apple Watch extension, WatchKit.
Using the Watch kit to develop an Apple Watch app
The framework is minimal and no-frills. This proved to be convenient for some aspects, annoying for others. As an example: there’s no way to overlay elements on the Apple Watch. This is a nice way to prevent the watch from overload (yes, the Apple Watch is not exactly the fastest device on Earth), but it’s also a big limitation to interface design. Another issue is the absence of information about the size of the graphics elements, which forces you to write them down on an old fashioned sheet of paper.
“the lack of informations about the component dimensions forces us to use pen and paper”
These issues are nothing you can’t solve with some good inventiveness: it’s not a tragedy so far. The debugger is the real problem.
A lazy and malfunctioning debugger
Here we are, the debugger…I felt like Chewbacca in this gif.
Let me explain how it’s supposed to work: the debugger needs to be plugged into the iPhone by cable, then the iPhone needs to communicate to the Apple Watch via Bluetooth. So the information should go on this easy trip: Computer –> iPhone –> Apple Watch –> iPhone –> Computer, traveling both via Bluetooth and wired connection twice, for the sake of variety.
This is not a practical solution, as you can imagine, but since that’s the way some very smart engineer at Apple decided to build it, we can only adapt. At this point you may think “ok, this is a non-sense way to debug something, but it should be no big deal”. That’s exactly what we thought initially, before finding out the debugger doesn’t work, at all.
“ah, if we had a nickel for every time the debugger didn’t worked”
We really mean that the debug system doesn’t work, at least in something like 80% of the time. How is it possible? We don’t know. Xcode displays a “running” status, but the Apple Watch doesn’t send any information to the phone (and same from the phone to the computer).
The workaround for the Apple Watch debugger
So, what can we do to use the debugger without going crazy and running through the office while tearing off our clothes? The most famous workaround consists in opening the iPhone camera from the watch, in order to force the Bluetooth connection between the phone and the watch. It’s not fast, it’s not nice, but it is what it is: a solution. Since we don’t like wasting our time, we found a more pleasant way to force the Bluetooth connection: we open Instagram. At least we can wait while watching some nice photos.
Have we already said that the Apple Watch is slow?
We don’t want to waste any more time complaining about how slow the watch of Cupertino is. It is slow and you can find a lot of documentation on the internet about that. The problem is that the hardware of the watch sometimes can be a limitation to the app development process. In our case, the issue was with loading mid-sized images directly from the web. The Apple Watch struggles to load images bigger than 1500px per side, and sometimes simply crashes while doing it.
“at the beginning we thought there was an hamster running the system, than we realized that there’s not enough space in the device. Probably the Apple Watch is simply slow”
Since we can’t always control the server to optimise the pictures on the backend side, we had to find a workaround that involves the front end. Our solution was, as usual, solving the problem through the iPhone. We sent the images to the iPhone in order to resize them and then send them to the watch.
Should I go on and develop apps for Apple Watch?
It depends on you, really. The Apple Watch is a really interesting wearable device that opens a lot of new interaction opportunity. It’s the right device for you if you are one of those people-who-like-doing-stuff-with-new-technology, like us. However, on the other hand, there are a lot of annoying limitations that make the experience really frustrating. It’s nothing you can’t overcome, but honestly we expected a little more from Apple, especially since their newest product still needs a lot of apps to conquer the worldwide market.
- Apple Watch Kit: Watchkit