Data Field: AppBuilder

By user request, this app lets you define your own data field, based on a simple math formula like cadence / 2.

If you want to get fancy, there's conditional expressions (like IF in Excel), functions for data analysis (like MIN and AVG), and the data field can also display the text of your choice. The resulting data can be (optionally) written to the activity FIT file.

With AppBuilder, you can implement almost any field that involves math, such as: calculating normalized power and saving the data to the FIT activity file, showing the average pace for even-numbered laps, or recording the amount of time you sprinted.

Full documentation and examples here:
http://ciq-appbuilder.blogspot.com/

AppBuilder 5:
Now with new features! AppBuilder 5 is a completely new app, so please check it out in the store if you are interested in any of the new features.
https://apps.garmin.com/en-US/apps/fd690281-9c22-4fee-a81e-3b7f39aa67c5

- Store up to four formulas per app. Switch between formulas directly on the watch, without using a phone or PC. With four clone apps, you can store up to 16 formulas total
- User variables. Allows for powerful formulas where information can be stored at one point, like the start of a lap, and used later. e.g. Lap elevation change
- Improved timeavg() options. Allows for simpler, more flexible normalized power function
- More functions and variables

4 clones of AppBuilder are available in the store, so you can have 2 formulas in the same activity
  • Unfortunately I think rowing stroke rate might not be the same as cadence. To verify this, please try the following with 2 fields
    - Native field: stroke rate
    - AppBuilder: Cadence

    And check that they don't display the same value.

    Or alternatively, try it with the native Speed field and the rowing pace field. One of Speed and Cadence must not be relevant for rowing.

    Unfortunately there are several native fields which are not exposed to connect iq apps, such as grade, or even lap distance/time. I think these tend to be things that are calculated rather than measured. The only swimming-specific metrics in the sdk are:
    averageDistance: average swim stroke distance from the previous interval
    swimStrokeType: type of stroke from previous length
    swimSwolf: SWOLF score from previous length

    No worries on the app, though. I still think it was a great idea and I'm hoping that it will be somewhat useful for people. The major thing that bugs me is so much functionality can't be included for older devices (which would benefit even more), because of memory. The best solution I can think of would be to move the "config" part to a separate app (widget or app on the watch) if possible or a web app. Which would make it much harder to use.
  • That's what I have. The AppBuilder displays the IQ! symbol which I suspect is because the Cadence_raw field is not defined in the Row app.

    So I need to ask Garmin to expose the rowing/swimming/XC ski stroke rate to Connect IQ?

    Why doesn't Garmin just code and test its apps right in the first place???? How hard can this be :(
  • Hmm that should not happen. No field that I defined should cause a crash, regardless of activity or whether the value is 0 or blank. If you try to divide by zero or blank, you get blank back. Could you do me a favour and update to the latest version, if you don't already have it. I did recently fix the dividing by zero thing.

    I tried "60 * Speed_raw / Cadence_raw" in the simulator [which doesn't allow you to select rowing] and it doesn't crash. But the activity type shouldn't make a difference at all. If a variable is not available/applicable, it will be blank, and AppBuilder should handle that correctly. (Any formula with blanks should come out as blank).
  • I also tried it in the 935 Row app and it doesn't crash, although I wasn't actually rowing. I did get a blank field, but I was indoors, so it makes sense because row speed is not defined indoors.

    I did verify that Cadence and Row Stroke rate are not the same. I put them side by side on the same screen and did not see the same values. Cadence started at 0 and only changed to non-0 when I made running-type motions with my arms.

    You may also want to compare Speed to the native Row 500m pace and see if they are the same. I'll try it later, assuming I get a 500m pace from walking around.
  • I updated the app [deleted and then reinstalled, now 2.3.2]. Like you I now get a blank field. To get the stroke rate to appear you just have to move your hand horizontally back and forth away from your chest, as though you were rowing :) . If cadence and stroke rate are not the same then my formula will definitely not work.
  • Yeah, I tried that :). When I made running type motions, the cadence changed and when I made rowing-type motions. the stroke rate changed. So I guess it's not possible until Garmin decides to add row stroke rate to the sdk...
  • In any case this is a fun measure for cycling as it represents development which is a bit like gear inches and tells you what gear you are in. I'll rename the field and add it to cycling!
  • Depending on how popular your data field becomes, a limitation of this data field could be that there can be only one formula. I suppose then it is helpful that someone else has built a similar app! Unless of course you were to submit a few versions... AppBuilder, AppBuilder2, AppBuilder 3 etc :)
  • Given that watches can only have 2-3 CIQ fields (and most only 2), I think 3 would be the limit. There would still be the issue of switching between complex formulas without entering them over and over, which I'm not sure how to handle. The best thing I can think of would be to allow entry of multiple formulas (say 4 or 5) and have a dropdown to select the one you want to use.