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
  • Thanks FlowState for the comprehensive response.  I've used AppBuilder for specific purposes over the years and, despite the learning curve, loved the flexibility and customized results I could get - but  it is a niche product as you state. I often see comments in the various forums like "Why doesn't Garmin add this - it should be easy to change the code", clearly from someone who doesn't fully understand all the complexities in making code changes (not only related to the code but testing, quality assurance, documentation etc).  All this to say that I appreciate the work you have done with AppBuilder.  I would certainly like a 7X version but understand that we are asking people to spend their time and effort on  a volunteer basis (for most) so expectations must be tempered.

  • hi, thanks for the detailed reply, now I understand that it will take time.. seems that garmin makes things more complicated than necessary...

    I will install the ide and tools these days and try to learn how to develop software for garmin devices Blush

  • I often see comments in the various forums like "Why doesn't Garmin add this - it should be easy to change the code", clearly from someone who doesn't fully understand all the complexities in making code changes (not only related to the code but testing, quality assurance, documentation etc)

    I mean even when you work at a company with great dev practices, a "5 minute code change" never takes 5 minutes....

  • I will install the ide and tools these days and try to learn how to develop software for garmin devices

    Good luck :).

    I will say the principle (if not implementation) of AppBuilder is quite simple:

    - Accept formula as input

    - Parse formula into tokens

    - Convert formula into reverse polish notation

    - Once per second, evaluate formula by substituting variable values, applying functions and applying mathematical operators

    The real complexity comes from:

    - The design of appbuilder's "language" (which is far from perfect). (My biggest regret is making things like pace and speed dependent on your device units

    - The various tricks used to conserve memory, especially on older devices. The code is extremely hard to read and maintain as a result. For example where I normally would've used a queue class, instead I initialize an array manually and pass it around to a couple of "loose functions" (not associated with a class), since classes are very expensive in monkey C.

    Even after all of that it's not ideal, as very long functions will crash the app (even on devices with lots of memory), since parsing the function takes too many steps and trips the watchdog timer.

    EDIT: I'm not suggesting anyone should re-implement appbuilder lol. If you have a small app in mind which does nothing but simple calculations, it might be better to make your own app. You don't even have to publish it -- if you don't use FIT data or settings, you can sideload the app. Or if you use either of those things, you can just publish the app as a beta for your own private use.

    For example, one of my most popular apps took me five minutes to write -- it literally subtracts elevation loss from elevation gain. When people asked for this field, I suggested using AppBuilder, but they preferred the convenience of just being able to download an app from the store. And I don't blame em.

  • Is there a plan to support Edge 1040

  • Is there a plan to support Edge 1040

    I'm not actively working on any of my CIQ apps at the moment, but I appreciate the interest!

    Updating my apps for the latest devices is definitely on my wishlist, but I can't say when I'll be able to get around to it.

  • And an update for the Forerunner 255 is wishfully expected, too. I have intensively used Appbuilder5 on my Forerunner 235 and I'd like to use my formulars on my new watch. Hope it doesn't last too long ;-)

  • I have a strange problem.

    I tried to display TrainingEffect and max(hr) according to the example hr + ':' + max(hr)

    It displayed -:100 ... so TrainingEffect didn't work, oh well, (please don't tell me Training Effect isn't supported by my watch. It is calculated, but I guess it isn't updated every second like on the more expensive models) but then I started changing the formula to things like 'boo' + maxHR + 'bee'

    The maxHR displays and updates but the words don't appear. But even stranger, if I put 'boo:' + maxHR + 'bee' :100 appears. i.e. the ':' gets rendered but not the other characters. The Label is displayed properly.

    It seems that the formula field can't display alphabet characters on the Venu Sq!!

  • I've updated AppBuilder 5 (not 5+) to support all the latest devices.