Quickstart

Overview

AppBuilder is a data field that you add to a built-in sports app on your Garmin device, such as running or cycling. It adds information to your sports app, it doesn't replace it. Unlike most apps in the store, AppBuilder doesn't do anything on its own (except display Cadence divided by 2, if that's the kind of thing you're into.) AppBuilder basically allows you to display anything you want, provided you know the formula (and it's not too complicated.)

"cadence / 2" is a basic example, and the reason this app exists. Another example would be "8-second power average": timeavg(power, 8)

Or elevation change (based on the difference between total ascent and total descent):

totalascent - totaldescent

If you look at some of the examples they probably almost look like the math we're all familiar with from high school, but with a twist: much like Excel, AppBuilder has its own special functions for averaging data, adding it up, or taking the minimum or maximum values, for example. AppBuilder also has its own variables, which represent Garmin activity data such as Speed, Power or Cadence.

Once you learn how to use the functions and variables (by looking at the examples and reading the rest of the documentation, you can create almost anything you want.) The only limitation is that the formulas can't be too long or complex, unfortunately, due to platform limitations. Despite AppBuilder's name, you're not gonna implement the next Strava Routes, dwMap or Dozen Run inside of AppBuilder, unfortunately (I wish!).

Getting Started

  • Download AppBuilder from the store
  • Decide what formula you want to use. For example - 5 second average speed: timeavg(speed, 5)
  • Set up AppBuilder:
    • Open the Garmin Connect app on your phone
    • Tap the picture of your device near the top of the screen
    • Tap Activities and App Management
    • Tap Data Fields
    • Select AppBuilder
    • Make sure AppBuilder is actually installed. (Sometimes when you download a Connect IQ app from the store, it doesn't install fully until you tap Install in the Garmin Connect app.)
    • Select Settings
    • Under Profile 1:
      • Set the label you want to see (e.g. Speed5)
      • Paste the formula you want to use. e.g. timeavg(speed, 5)
      • If you want to record the data to the FIT file, so you can look at it in Garmin Connect later, go ahead and check that box
      • Save your changes
  • On your watch, add the AppBuilder data field to your running, cycling or other built-in sport:
    • Open the sport (e.g. Running)
    • Hold UP for Settings
    • Select Run Settings
    • Select Data Screens
    • Select a data screen with an unused field
    • Select the field you want to use
    • Select ConnectIQ Fields
    • Select AppBuilder
Now AppBuilder will display the results of the formula you typed in.

Comments

  1. I have a Garmin 920XT and it seems I can only have one formula. When I go to settings on the app I dot get the "Profile 1" option it just goes straight to the formula window where I can program the window and save it. Please advise.

    ReplyDelete
    Replies
    1. Multiple profiles are only available for CIQ 2 (and higher) devices, such as 645, 735XT, 935, Vivoactive HR, VA3, etc.

      Sorry, I should've made that clear on this page.

      Delete
  2. This app is really great. When the data shows up in the connect app, it seems to label it "AppBuilder 5" rather than the name given to that profile. Am i missing something about how it works.

    ReplyDelete
    Replies
    1. Thanks! Unfortunately, due to Garmin limitations, the label for the activity data is fixed when the app is submitted, which is why it says "AppBuilder 5". If you look at the summary, the label should be displayed there under the field called "Label".

      Delete
  3. Fantastic app. I have a Fenex 3 but considering upgrading to get the most out of this app.

    ReplyDelete
  4. I want to create a data field during multisport (swimrun) that is the summary of all the swims and runs during a session. Can this be done with this app builder? In swimrun you swim-run-swim-run-swim..... There is today a Multisport Time field, but no Multisport Distance AFAK...

    ReplyDelete
  5. Hi. I know you said about ANT+ sensors, but I was wondering about the Tempe sensor as F5 etc have an internal temperature sensor. Is temperature data available?

    Thanks

    ReplyDelete
  6. Hi, do you plan to support the vivoactive 4/4s watches? Your app seems great!

    Thank you

    ReplyDelete
    Replies
    1. Thanks! Sorry for the very late reply, but VA4/4S are supported by AppBuilder 5.

      Delete
  7. is it possible to show the best avg heart rate for 20 minutes or any other pre defined interval ?

    ReplyDelete
    Replies
    1. Sorry for the late reply.

      If you mean the "best 20-minute average HR", then yes. (i.e. I assume the period of time applies to the average and not the best value.) If you mean "best average HR in the last 20 minutes", then no.

      The formula for 20 minutes would be:

      MAX(TIMEAVG(HR, 20 * 60))

      Note that this takes a bit of memory and may not work on lower-specced watches.

      Delete
  8. I'm working on a speed via power formula. Trying to build up some sort of rolling average for coast time plus instant speed. Here's where I am at so far.

    timeavg(power, 14)*0.08+6

    This works fairly close it's a bit fast but with some minor tweaks could be better.

    I've been trying to make it two parts short term+long term to get a instant speed with coasting factor in this way....
    timeavg(power, 3)*0.18*0.8+timeavg(power, 10)*0.06*0.2

    But I'm considering using the newer prevn function....

    timeavg(power, 14)*0.08+6+prevn(power,5)*.07

    ReplyDelete
    Replies
    1. Update! Threw the polynomial out the window for an exponential function.
      http://www . xuru . org/rt/PowR.asp

      Here's my Data(Power,Mph):
      60 12
      80 14
      90 15
      125 16
      174 19
      190 21
      1500 38

      Resulting in :
      3.04367*timeavg(power, 8)^0.35017

      Delete
    2. With that working out acceptably, I'd like to record this value(mph) as speed.

      I see through the docs that nativenumber for speed appears to be 6.
      However, neither

      record(3.04367*timeavg(power, 8)^0.35017,6)
      nor
      record(3.04367*timeavg(power, 8)^0.35017,6,"Speed")

      Are writing speed data to the fit file in garmin connect or in runalyze.com

      Any help would be appriciated, thanks in advance.

      Delete
    3. For completeness I'm using a Edge 530 & AppBuilder 5(B) Version 5.23 with Assioma Duo's for power.

      Delete
    4. Hi Chrisgo,

      Despite the use of the native number for speed, I'm guessing that no site actually accepts 3rd-party data for speed. This is similar to how Garmin Connect itself does not respect "nativeNum", and how Stryd only accepts Power data from its own apps. Sorry, wish I could help you.

      Delete
  9. Hi, i did a formula that estimates the avg power. The data displayed at the edge 1000 is a little different of the data at the fit file. Why?

    ReplyDelete
    Replies
    1. Hmm not sure. I can tell you that AVG(X) is basically the sum of each value of X (1-second samples), divided by the number of seconds in the activity (not including pauses). This includes values of 0.

      If you want the "native" average power, you can use the "AvgPower" variable.

      Delete
  10. Hello, please can you help. I have a formula that I can't get to work for the 5th lap. I have been running parkrun and pressing my last buttom at a know point from the end (about 4.800) or 250m from the end), I want the data field to show how far behind/ahead 29 minutes I am as I'm running around. This formula wokrs fine for the fisrt 4 laps (until I press the lap button). IE: ifs ( LapCount gte 5 , ( (timer / distance) * (4.250+lastlap(lapdistance) )) - 1740 , LapCount lt 5 , ((timer / distance) * 5.030) - 1740 )

    ReplyDelete
  11. is there a way to only get the last X minues of activity? for instance I want to get the 3sec average power for the most recent 60 minutes only. Thanks for your help

    ReplyDelete
  12. App is simple to setup, thanks a lot for doing this.

    I’m using an Edge 1040 solar. I’m not seeing a way to add more than 1 field on a data page per clone of AppBuilder, so I think I’m limited to 1 field per clone, correct? I do see the ability to add up to 4 formulas per clone, but when adding the field via Data Screens I’m only able to add the first field of each clone. Any guidance is appreciated!

    ReplyDelete
  13. Hi,
    I want to make my open water swims in m / km but be otherwise unchanged from the normal settings. I don’t want to change to overall data field.

    ReplyDelete

Post a Comment