In case it is useful to anybody else: searchable device database for SDK 3.18

Hi,

I was getting fed up with guessing at stuff all the time, so I put together something to interrogate devices.xml and output it to an Excel sheet.

I've attached it here in case anybody else finds it useful.

It does the following:

1. Lists family names for resources directories etc.

2. Provides a table of the following attributes:

name
id
family
grouping
icon w, h
resolution w, h
number of colors in palette
list of ciq versions
watchface memory limit
watch-app memory limit
widget memory limit
datafield memory limit
background memory limit
glance memory limit
audio-content-provider-app memory limit
 

G

7455.Devices_3.18_PlusCompatibility.xlsx.zip 

7455.deviceNamesWithMonkey.zip

ETA: ADDED THE FOLLOWING ITEMS:

1. "MANIFEST ENTRY" column allows you to select devices based on search and copy + paste into manifest.xml directly

2. Behaviour mapping lists behaviours ("ON_ENTER", "ON_SELECT" etc.) and the mode of accessing each (button, swipe)

3. List of data field layouts

ETA: ADDED THE FOLLOWING ITEMS

4. BPP of display

5. istouch 

6. wifi_exclusions

ETA: COMBINED WITH DATA FROM COMPATIBILITY PAGE

ETA: Added in "buildDevices.zip" that has a string file with the device name for each device.

ETA : Updated device names zip to include monkey.jungle

  • If you support 34 devices, you really want to run each one in the sim

    I test on lots of different models, but frankly, once I have display code flexible for all of the display possibilities (and I do) and the code is robust and safety checked (which it is, and yes, I have one or two "has" in there), then it is not a productive use of time to manually run through every single device.

  • 2015 - a typo.. they happen. (like "fr6" Slight smile )

    And yes, it gets back to experience.  There's a learning curve to CIQ and always has been,  Lot's of devices, lots of options.

    The basics are

    lifestyle - venu/va.  "Jack of all trades, master of none", so you'll find that things like power sensors and running dynamics aren't supported.

    forerunner.  From basic to advanced.  minimal to Multi-sport/tri.  The 645 is kind of in the middle of that group.  the 245 has more than the 645 in some cases, as it's also a much newer device

    fenix/marq.  They got everything.

    Understanding this stuff doesn't take 5 years, but maybe more than a few weeks.

    There is a list of what devices have currentPower in the API doc, but I see it's a bit outdated (the newest devices are the f5 devices).  Maybe file a bug report to get that updated.

  • There is a list of what devices have currentPower in the API doc, but I see it's a bit outdated (the newest devices are the f5 devices).  Maybe file a bug report to get that updated.

    The thing is...

    All of this information and much, much more, current and valid and good information is maintained in the JSON feed that feeds the Compatible devices webpage.

    What it should have is some way to search that... the page as it stands is a method of last resort. Whereas, with just a small number of changes, it could actually become a useful developer resource.

    Maybe file a bug report to get that updated.

    For why? Power is just a single list amongst scores of "advancedFeatures" new and future ones.

    Why even have that list in the documentation?

    You've mentioned yourself that maintaining lists in documentation is a pain in the hole that will never be accurate. Whereas, the compatible devices is presumably from a feed that is critical to the success of Garmin as it presumably is used elsewhere (such as to inform marketing documents).

    Why not simply improve the compatible devices to make the information it contains accessible and then strip out the out-of-date and hard to maintain crud from everywhere else?

    And, yes, I probably will create a bug suggestion on that later.

  • There are lots of places outside CIQ to learn about devices and their capabilities when you're just starting.

    Things like the Garmin store and DC Rainmaker's reviews to compare features, as well as the device specific forums here.

  • Personally, I'd much rather have the API doc updates a bit more automated, so the info you need, like what devices support a specific function, is right there.  If you want to add something to an app, the calls and devices are right there, in the same place.

    In the past, the online docs can lag those included with the SDK, and as I mentioned before, if there's a beta SDK (as there was with 2.3.0, 3.0.0, 3.1.0), you actually have two different SDKs to consider at the same time.

  • Updated the original post to include a zip of string files with device names for each of the devices listed in the latest devices.xml (built by batch script so as not to go mad).

  • And because that meant I couldn't find my source folder any more, I have updated the zip to include a monkey.jungle which means you can keep the whole disgusting excrescence in a separate folder.