Metric Time on an Apple Watch

I have a small fascination with Metric Time. The continuance of the French project to measure the world in sensible, easy to understand units. Like the Metre, the Litre and other metric units, Metric time divides the day up into easy to comprehend units. So, you get 10 hours in a day (instead of the normal 24), and each hour is divided into 100 minutes, and each minute divided into 100 seconds.

A couple of years ago, I wrote myself an iPhone app that displayed a metric clock – with some help from my friend Oliver who took some time to try to ding the nuances of XCode and app writing into my head. I’m not sure that everything he told me has stuck, but I’ve been prodding this project every now and then to see if I can improve it. It’s a learning experience, I guess.

The most fun is creating the faces (again, a work in progress), and hanging those results on something that works. What Oliver helped me create was an iPhone app where I can easily add more faces with minimal extra coding. You basically give it a list of graphics and tell it how they should behave. The grunt work is handled by existing code.

Putting Time Where It Belongs

Anyway, the Apple Watch came along, and as I have one, it seems to make sense to extend my app to that. A watch is certainly the most natural place to put a time telling device, and it seems right and proper that you’d put an app like this on it. The initial Watch OSes required a lot of input from the parent iPhone (the watch being almost just an extension screen), but Watch OS 3 allows apps to run natively. This, I thought, would be about the right time to see if I can do this without the aid of a safety net (ie asking Oliver, who is busy enough with his own things).

After a couple of days of frustration, and a lot of Google work, I have a native Watch OS app that displays a decimal clock. This makes me happy. It‘s not perfect, but I got somewhere this week that I didn’t think I would. There is also the inkling of a compilation which fast tracks you to the App. Hopefully, I’ll be able to get that to carry the metric time too.

I WANT THIS? CAN I BUY/DOWNLOAD THIS?

Sadly, the answer is No. There are a few reasons, and I’ll try to explain why. Don’t get me wrong, I’d love to put this on the app store, maybe even put a nominal price on it, but there are two things that are stopping it: Apple, and Me.

Apple’s Reasons

Apple does not allow Apple Watch apps to have a primary function that is telling the time.

I can probably guess a couple of reasons why. The first is obvious: they don’t want to distract from the main time telling functions on the Watch. They have expended a lot of effort to make sure that the watch is very accurate. An app that does a similar task is never going to match that, and that accuracy, along with things I’ll detail below, can only detract from the experience of the Watch’s face being “instant on”.

There is also copyright problems. On the Android watch platform, you’ll find a lot of “fake” or “mock” watch faces based on big name brands — Longines, Rolex, etc.. This is a problem for those watch makers as they now have to protect their brands from the electronic copycats as well as those who sell physical fakes. Apple clearly doesn’t want their platform associated with such activities (or to be exposed to lawsuits, being the distributor), and so they are clearly stopping this before it has a chance to start.

My Reasons

Generally, the app works well, but there are real problems with the user experience (and, likely, some of these are compounded by my non-existent experience in this area). 

On an Apple Watch, you flip your wrist and magically one of the watch faces appears. It’s running, it’s just there. However, if you start an app—even one that may have been running previously, and you’ll get a delay before anything happens. This is true for ANY app, but that delay depends on what the app has to load to run. Even if the app is in the Watch’s dock (a kind of “my top ten apps I want to load fast’ list), there is an obvious delay before the app starts to work. Watch the video of the complication above to see the problem.

On the iPhone app, you can take an image of a hand, display it, and tell the phone to rotate it for a certain amount of time at a certain speed. That’s pretty much it.

The Watch, however, can’t do that. Animations have to be a collection of frames, In the case of the watch, that’s 300 frames – one for each of the 100 positions each hand will need to occupy. You then run the animation like a flip book, displaying each frame in turn. This means that there are a lot of assets to handle, and loading that seems to take a while. It’s not a nice way to handle animation, but it’s probably the least power hungry.

The Watch’s method of animation also means that it’s not smooth. The more frames you add, the smoother it will get, but that increases the footprint and time to load.

And, yes, Apple’s official watch face either does this very efficiently, or they have better animation calls in their WatchOS that they are keeping to themselves (or I am ignorant of — which is highly likely).

Some internet digging tells me that Quartz (which is what Apple calls its system for moving stuff around) isn’t supported on the Watch. Sadly, neither is WebKit – which would have made this a simpler project for me to create.

So, sadly, this is not something I feel I could release to the masses in its current form. Sorry to disappoint.

The Future?

Will Apple relax their restrictions in the future? Maybe, you never know. They have done with the iPhone and iPad, so possibly sometime down the line, and if I feel confident enough about this, I may be able to go public with it. In the meantime, I’ll revisit this from time to time.