Garmin Connect IQ App Development

Page may contain affiliate links. Please see terms for details.

Bollo

Failed Tech Bro
Location
Winch
One for the geeks this, so apologies if the following sounds like wibble. Long post short, is anyone else playing around developing Connect IQ Apps?

The long read.....

A couple of months ago Garmin opened up an API on their 'wearables', which included the Edges 1000 and 520. Garmin Express now has a Store where you can download third party Apps on to your device, or develop and upload your own for other people to use.

http://developer.garmin.com/connect-iq/programmers-guide/

Being the owner of a 520 and in the code business, I've had a poke around.

The good bits; you're coding a bike 'puter FFS, how cool is that!!!!! Unusually for Garmin, the development and installation is relatively straightforward and genuinely open - no signing your life away or handing over $5000 to get API access, as for Garmin Connect. Also they've provided an Eclipse plugin that seems to work well, with the provisos below. They've included device simulators so you can run your App using real recorded activity data to debug and it's possible to side-load your app to your own device without the need to go through store approval.

The API also supports a high-level interface for connectivity with your phone and there are companion SDKs for iOS and Android, which massively expands the possibilities for development.

The not so good bits; for the time being at least, the Edges only seem to support a very small subset of the whole API. In particular, the API only gives access to the active activity stats, which bizarrely doesn't include any positional information, including elevation. Also, custom data recording to a FIT file isn't supported. These seemingly arbitrary limitations have scuppered one or two ideas I've had. Hopefully Garmin will open things out more in a future update.

My other main gripe is that the Eclipse plugin doesn't seem to support any of the standard debug features. The lack of break-points is a particular irritation. So you're left with very old school print statements to a console to monitor values and execution. Boo!

The coding language is Garmin's own (as far as I can work out) 'Monkey C' that, as the name suggests, is a kinda C/C++/javascripty/perly type language with tweaks for very low power and memory devices. It's easy enough to pick up, but the documentation for this and the API is still fairly scant. The best source of guidance are the existing open apps hosted on GitHub.

Whatever its current shortcomings, this is the future. Respect to Garmin for keeping it very open, at least for the time being. My main concern is that they still lack any serious competition. Although Wahoo, Lezyne, Polar etc compete in the same market, as far as I'm aware they've nothing like this level of flexibility.
 
Top Bottom