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
  • Hi Michele17 thanks for the feedback!

    AppBuilder 5+ currently uses far too much memory in code to fit on a 935.

    The only it could be remotely possible would be to cut out the formula processing from the CIQ app and put it in a web app. The web app would generate processed config (like DIY Data Field) which you would have to copy and paste into your app settings.

    Given the tiny userbase of AppBuilder, I'm not sure this is a worthwhile pursuit. I posted a poll about this once, and I think maybe 3 people voted for a version AppBuilder where you configured it through a web app so it could have more features. And only 6 people have downloaded AppBuilder 5+ so far.

    TBH, as someone who does this for fun in my spare time, I would rather focus my time and energy on projects that are useful to more people. I already put a ton of time into 3 versions of AppBuilder and a website full of examples and documentation, as well as providing one-on-one help with formulas.

    And TBH, once you reach a certain level of complexity, a real CIQ app is better, anyway.

    I guess AppBuilder 5+ would be good if you need something like distance and pace in opposite units for the activity, lap and last lap all at the same time, which is something you probably can't find on the store today.

    But as I mentioned before, an app which calculates "TotalAscent - TotalDescent" and took me five minutes to code has more downloads than AppBuilder. That sort of shows the relative usefulness and appeal of AppBuilder.

    I'm not saying it'll never happen, but I doubt it.
  • Update: AppBuilder 5 and 5+

    Fix crash when dividing by 0.0 (but not 0!).
  • Update: AppBuilder 5 and 5+

    [CIQ2 only]

    Add bearing, bearingFromStart, courseOverGround. (To go with existing heading variable)

    heading: the direction you are facing
    courseOverGround: the direction you are traveling
    bearing: the direction from your current location to destination
    bearingFromStart: the direction from your start location to destination

    As per the manual, the "friendly" units (e.g. "heading") are degrees (0 to 360) and the "raw" units (e.g. "heading_raw") are -pi to +pi.
  • To continue on the theme of whether AppBuilder is useful for anyone at all, if you did find AppBuilder 5/5+ useful, I would appreciate a rating or a review. Or even if you hated it, go ahead and put that in the review as well.

    It just might make the difference as to whether there'll be any future updates or not. AFAIK, there's very few jobs outside of IT/software development where pros donate their labour freely for "fun".

    The app I made in 5 minutes which calculates "TotalAscent - TotalDescent" has more ratings (2) than AppBuilder 5/5+ (zero) and more downloads than any AppBuilder. Maybe it makes more sense to make 5 minute apps that people actually want. I could've churned out the most useful of the hundred+ examples in the manual as separate apps in a lot less time than it took to develop, support and document AppBuilder, and probably with more downloads and positive reviews, TBH.

    I have actually gotten an angry email from someone who didn't "get" AppBuilder and was extremely frustrated. While I can understand and sympathize with their POV, it makes me question whether the app store is better off with or without an app that claims to help you build your own apps....

    I also got an annoyed email from someone who said it was a waste of their time to check all the store pages and the whole forum thread for examples. I (privately) agreed with him and (much later) added a website which has everything you need. Number of emails I got thanking me for the website: 0.

    Not that I'm surprised or anything, but it makes me question the point of all of this. Especially when I'm sure the platform will look very different in just 2-3 years (it's sooo immature rn) and very few people will be using the same apps, except for the big ones like dwMap or Dozen Run. Maybe Apple Watch will have destroyed all the competition by then and nobody will even be using a Garmin.

    The entire point was to make something that's useful. So if it isn't useful, then there's no point in maintaining it, supporting it, or updating it.

    Thanks!
  • Please please do not leave this apps !!!!
    This is very good data fields i want make so many things with them
    They are helps me sail better !
    for now i use race countdown timer and speed comparing and trying to make some heading COG datafield.
    I hate Garmin limitation to 2 datafields only i want minimum 3 or 4
    Thank you for a hard work and listening for our problems and wishes .
  • This is what i make for now

    Race Timer with Average speed 10 sec in knots after timer ends.

    ALERT[Timer GTE 60];ALERT[Timer GTE 120];ALERT[Timer GTE 180];ALERT[Timer GTE 240];ALERT[Timer GTE 270];ALERT[Timer GTE 280]; ALERT[Timer GTE 290];ALERT[Timer GTE 295];ALERT[Timer GTE 297];ALERT[Timer GTE 299];ALERT[Timer GTE 300];IF [Timer LTE 300, formattime2[300 - Timer], TIMEAVG[Speed_raw, 10] * 1.94384]

    Average speed 30 s in knots if speed is lovering there is visual alert, if courseOverGround is changed there is alarm sound and vibrate .

    setv[1,abs[round[TIMEAVG[courseOverGround, 30] - TIMEAVG[courseOverGround, 5]]]];record[TIMEAVG[Speed_raw, 30] * 1.94384];Alert [speed gte 4 and timer GTE 301 and getv[1] gte 10 and getv[1] lte 40 ];if[[TIMEAVG[Speed_raw, 30]] lte [TIMEAVG[Speed_raw, 20]], [TIMEAVG[Speed_raw, 30] * 1.94384] ,[TIMEAVG[Speed_raw, 30] * 1.94384] + ' v']
  • Former Member
    Former Member over 6 years ago
    I guess it's a good time now for all of us who actually use AppBuilder to show it. So let's put out positive reviews and spread the word.

    After thinking about it more now the recent updates have got me pretty excited actually. Modifying running power real time and recording it is just a one example. Hopefully I can offer some more examples in near future. I even got my eyes set on a used F5+ so hopefully can experiment with Appbuilder+ soon too. :)
  • +1 for supporting the App. Review duly delivered & apologies for needing a nudge.
    I can't understand the annoyances that you are subjected to especially from the user who was 'wasting their time!' FFS it's not like they are paying you for a personal service.
    I'm appreciative of all devs efforts, some suit my requirements some don't that's why we can choose to install or not.... But getting angry! Some folk just enjoy complaining. Keep up the sterling work
  • Thanks for the positive responses and reviews. No apologies necessary. I rarely bother to review apps myself. :shrug:

    On the flip side of things, it's not anyone's fault here if an app does not have widespread appeal. I always knew AppBuilder was niche, but I guess my problem is sometimes the effort seems a little disproportionate.

    Everytime I add features I have to worry about breaking someone's formula, because there's no way to limit the complexity of formulas, and I don't know what formulas people are using.

    At least with DIY Data Field you could put a practical limit on the number of onscreen elements or something. I can't very well say "you can only have up to 10 brackets in your formula".

    That's why I made a new "AppBuilder 5" in the first place. The best way to get around the complexity issue would be to move all the formula handling to a web app, which of course would be a bunch of work.... To me it sorta indicates that the whole premise of AppBuilder is ill-conceived, but again that's not anyone fault here.

    But I guess if major features were to be added, or more complex formulas to be widely supported, the web app would be mandatory. Then you have the issue where you can't use it in 2-5 years if if no one's supporting the app....

    TL;DR - thanks for using the app and it's not your problem if it's niche or problematic. Honestly I never expected anyone to use it in the first place.
  • Former Member
    Former Member over 6 years ago
    Btw, just noticed you can display up to three formulas, so actually for my power recording formula on previous page I could also display all Normalized power, Lap Power and 5s power on same field and record at the same time. Just placing + ' ' + between the formulas. It's great you can also choose the separator so I could alternatively use + '/' + etc.

    This way with 2 appbuilder CIQ instances it would in theory already be possible to show up to 6 metrics at same time, if they were all numerical and max 3 digits long. This works best at large layouts though like 2 large fields, so you couldn't really add any additional metrics on same screen.

    Anyway I think this is already a huge improvement over previous version and I have to say I'm pretty amazed what's possible even with just one simple instance of appbuilder now.