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

  • Wov!!! :-)

    Thanks a lot for the quick implementation of my wish and the formula, I am very happy about it :-). Its very nice always to see, at which time i will be at home, if i hold the actuall pace on my planed tracks. When i have a trainig run about 35 KMs like in the example above, i change the Formula into 35,000 instead of 42.195. The limmiitation with the 24 hour format and the nightly passage plays for me no role, that fits! :-)

    I did not find it fast on your pages. Is there somewhere a paypal donation button or something similar where we can thank for the field and the support? I would like to thank with a small amount for a beer or even more ;-) for your pefect work. ;-) :-)


    Many greetings and thanks, Kuki :-)
  • You're very welcome!

    Actually I should thank you because it's all the users who find ways to make the app useful, which is the reason I made it in the first place.

    I don't have a paypal for donations, but feel free to leave a review and share how the app was useful for you.

    :)



  • I don't know how to express my thanks! I'm a highschool teacher in programming so you can understand my feeling when I see a code to work.

    ​​​​​Thanks very much and if I can help in any way for your great datafield, please let me know.
  • Thanks!

    Well, in general I am acutely aware the app is a bit too complicated and inaccessible, and there are a few things which are not intuitive. (Such as the "automatically changing units", and certain functions.) The documentation and the list of examples just gets longer and longer, but I don't think it makes the app any more accessible.

    Wouldn't mind hearing (from anyone) about things that are intuitive or confusing, useful or not useful, etc. Especially things that would make the app more accessible.

    Maybe a web app for building or testing the formula? From what I've seen, Suunto's platform (which is sorta similar, but much better I'm sure), has sliders which let you adjust the variables and view the calculated result. I have no idea if I would ever implement anything like that, but I'd be curious to see if there's any interest.

    If anyone's used Suunto's platform, what did you like about it and what did you dislike?
  • Nice work on the app. Now you have a connect iq field for non programmers that have to program a function through the app settings :)

    The more functions you added the more complex the field has become, I don't think you could have avoided that. You already made extensive documentation I don't think you can do much more than that... I'm not sure if a webapp will make that part any easier, as people will still have to grasp what the functions do when they select them...

    You can try how the app creation on suunto works yourself, you just register at movescount.com/apps and a minute later you're off creating suunto apps. The process might give you some good input on what to do next with your AppBuilder and if you feel adventurous you can implement all suunto functions so people can use all suunto apps out of the box on their garmin device :D

    Cheers,
    Peter.
    My apps in the store
  • Nice work on the app.


    Thanks!

    Now you have a connect iq field for non programmers that have to program a function through the app settings :)


    Haha, that's the irony. Like any "simple" scripting language there's a certain threshold of complexity where you are "actually" coding. It's all in the eye of the beholder. A really complex Excel (<_<) formula could be considered a "program", as well. (Ignoring technical stuff like whether AppBuilder is Turing-complete...)

    The advantage of this app is you don't have to install Eclipse and the CIQ SDK on your system, then submit your app to the store or deploy it. The disadvantage is you're stuck with 2 CIQ datafields per activity, and that there's also a limit that what the field can usefully do.

    There's actually a couple of things I would use my own app for, except that I usually have both slots filled :(.

    I'm not sure if a webapp will make that part any easier, as people will still have to grasp what the functions do when they select them...


    Agreed. The best you could do is provide some recipes and canned routines, but it probably wouldn't help.

    They only advantage of a web app would be an easier way to validate formulas and see exactly where the syntax error is. Another possibility would be to create a separate version of AppBuilder for CIQ1 devices, where you have to use the web app to "compile" formulas, in order to free up code space in the watch app. This would open up the possibility of having a few more functions on CIQ1 devices. Probably wouldn't go there unless there was a lot more demand/interest.

  • Hi there!
    Today I had a match so I tested the Formula: IF [LapCount plus 1 LT 3, LapTime, 45 * 60 plus LapTime]

    At second half (the 3rd lap) the lap time shows 45 and counting. This works ok.
    But when we arrive at 60 minutes it shows in hours. It shows 1:00:00 and counting.

    I want the second half (the 3rd lap) to show from 45 till the end of game (90+).

    &#8203;&#8203;&#8203;&#8203;&#8203;&#8203;&#8203;Any advice?
  • Hi,

    Hmm, I would have to make changes to appbuilder to allow it to display what you want, unless you'd be willing to have it display something like the following at 60 minutes and 45 seconds, which is a little non-standard:
    60:45:00
    (i.e. Minutes:seconds:00)

    It won't be possible to display the fractional part of the seconds properly with this method (you'll always see 0).

    If this is okay with you, take your formula and modify it as follows:

    ((Original Formula) plus 0.5) div 1 * 60

    Explanation:
    (X plus 0.5) div 1 rounds X to the nearest integer. (10.5 becomes 11 and 10.49 becomes 10). We need to do this to get rid of fractional seconds.

    Y * 60 converts seconds to minutes. (We had to get rid of fractional seconds, because fractional seconds should not be displayed as 1/60th increments).

    I could also change AppBuilder, but the change I would make would depend on which watch you have, because there isn't a lot of memory on older watches for me to add anything.

    1) If you have an older CIQ1 watch, like FR230, Fenix 3 or Vivoactive, I could add a new fixed display format which displays seconds as minutes and seconds (no hours).

    2) If you have a newer CIQ2 watch, I might consider adding a custom display format, which I always considered a cool idea. This would be a formula in itself, and it would allow people to display whatever they want, including symbols like percent and ":".

    In your case, your display formula would be like something like:
    %d / 60 + ":" + %d mod 60

    (Ignoring rounding considerations for now)

    If you have a newer watch I might just pick option 1) anyway, since there's room on older watches to add small features like this.

    Which watch do you have?






  • I have vivoactive HR.
    I think it could be easier for most of the people if you just in the display format selection add 2 choices:
    1. time [in minutes]
    2. time [in hours]
  • Yeah, I agree that is the simpler choice. However, there will be a point when I simply cannot add anything new (at least for CIQ1 watches). Anyway, this is a pretty tiny change so it's not unreasonable to add.

    Update 2.6.26:
    Added Time2 display format: seconds to mm:ss
    e.g. 7200 seconds = 2 hours = 120:00

    As opposed to:
    Time: seconds to [hh]:mm:ss
    e.g. 7200 seconds = 2 hours = 2:00:00