I made my first watch face!
It's a simple binary representation of UNIX time.
The watch face API is, honestly, kind of weird to use. After I watched a few of the +Google Developers
videos on making watch faces, I hoped that to get a basic watch face working, it'd be something akin to extending a base watch face class, and filling in some key methods like onDraw.https://www.youtube.com/watch?v=AK38PJZmIW8https://www.youtube.com/watch?v=VkvHKtmsvYAhttp://developer.android.com/training/wearables/watch-faces/index.html
Sadly, the process was no where as straightforward. While a lot of emphasis was given on how watch faces should
behave (like in interactive vs. ambient mode), the framework offered no help in getting you there. Yes, it's flexible enough and gives you the tools to implement the basic behavior as well as arbitrarily complex behaviors. But honestly, I would have appreciated having the SDK provide some convenient and sane helpers/defaults.
So actually, even though my watch face kind of works, it's still missing a lot of boilerplate. For example, it currently doesn't take in the time-zone, which involves throwing together a BroadcastReceiver. It doesn't take into account ambient and muted modes, since I would need to manually maintain which mode I'm in.
Overall, it feels like writing watch faces would be something a seasoned Android developer could get used to. It really does resemble writing a full-flown Android app, for better or for worse. But in my opinion, as someone who has done Android programming but no where near expert level, that's no excuse for a difficult-to-use SDK.
In any case, there is a particular watch face that I'd like to implement, so this was mostly about getting my feet wet with the process. I'm sure that as I progress, my frustration will get to the point where I become compelled to factor out all the boilerplate and construct an abstraction level that allows me to focus just on the application logic. Let's see where this goes. :)