One of the attractive features of Garmin’s D2 Bravo pilot watch (a derivative of their fēnix 3 model) is the ability to customize the watch via for apps, widgets, watch faces and data fields available on the Connect IQ Store.
Connect IQ is touted by Garmin as “the first-ever open platform for third-party developers to create apps for our [Garmin’s] products” and it allows anyone with some programming savvy to create add-ons for their products, filling gaps (or in some cases, gaping holes) in built-in, default functionality or adding on highly specialized features that may not appeal to the general masses.
I’ve had my D2 Bravo for nine months now and I finally got around to looking into developing with Connect IQ, though I had been thinking about it for the past couple months but had been completely unmotivated to do so because the last thing anyone wants to do is dive into documentation provided by a big company (Garmin has a market cap of about $7.7B as of this writing) – I had visions of the nightmare that was working with PayPal’s API back before Stripe showed up on the payment processing scene. Plus I recalled reading that Garmin had created a new language to go with their Connect IQ API and I detest learning new languages, especially when the language is specific to one particular platform.
As it turns out Garmin did create a new, object-oriented language, called Monkey C, for use with Connect IQ. But the claimed goal of doing so was to make for easier app development on wearable devices by “…letting developers focus more on the customer and less on resource constraints“.
Okay, I was warming up to the notion of learning a new language. And that was made easier by the modern look and wording style in which the developer site for Connect IQ was written. The documentation is casual, fun and easy to read and understand. Perfect. And just when you think you can’t have anymore fun, you come across one of their funny footnotes.
Functions are the meat of your program.
2. Tofu for the vegetarians, BBQ for Kansans…
But footnotes aside, the programmer’s guide is a software developer’s dream, full of clear descriptions and lots of sample snippets of code. Not at all what I was expecting, and that serves me right for projecting past experiences with big companies and terrible documentation onto Garmin. In any case, what a breath of fresh air; it was like working with the Stripe API again! I’m not sure if this developer honeymoon will last through the first trial project but it’s looking good so far.