No announcement yet.

Data Field: AppBuilder

  • Time
  • Show
Clear All
new posts

  • +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.
      Last edited by FlowState; 12-06-2018, 02:43 PM.


      • 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.


        • Yeah, two values works okay in 4-field layouts, but 3 is pushing it, although it's possible with HR/cadence if you use numbers and not decimals.

          Please note that to get the largest possible numerical font (with AppBuilder 5, not 5+), you need to limit your characters to:
          (and no spaces).

          It's a moot point with 3 values - which will already use a small font - but you might care if you have one or two values. Just adding a "W" or "bpm" sufffix will shrink your text.

          If you use other characters, the data field will automatically switch to a smaller text font, because as a simple data field, Appbuilder 5 lets the system handle the drawing (to save code space). This is why you see data fields in the store that use a "W" suffix for power and have teeny-tiny numbers. And that's why I recommended using a ":" separator even though it looks weird.

          This is a Connect IQ limitation where they don't want you to use characters that are not available in large numerical fonts, and they are slightly more restrictive than they need to be - "/" and spaces should def be supported. It's probably so they can support the widest range of devices - which all have different fonts - with the least amount of code.

          In AppBuilder 5+, you can use spaces and additional characters, like "/" and "#", and still get the larger numerical fonts, because 5+ - as a "complex data field" which handles its own drawing - controls the font that is used.
          Last edited by FlowState; 12-06-2018, 02:56 PM.


          • Having said that, multiple values in one field is a novelty but I dunno how practical it is - sort of like AppBuilder itself.


            • Update: AppBuilder 5 and 5+

              - Improve formula processing time so certain complex formulas don't crash (due to taking too long on init)
              - Fix recent bug where certain formulas would crash, regardless of complexity

              Here's where I say "my bad" and admit that sometimes I put pretty dumb code in AppBuilder in a fruitless attempt to save memory (even watches like 935 are starting to feel the crunch). I guess it started because to even create AppBuilder I had to write a bunch of pretty hard to maintain code that nobody in their right mind would write in an environment with more memory. Had I written clean code that was easy to maintain, I never would've been able to pack all these features into AppBuilder.

              Also, I could be better about testing, and also not releasing changes so rapidly. It needs to be useful, but it also needs to work.

              Sorry for the inconvenience!


              • I can imagine trying to shoehorn so many functions into a small memory space must be coding nightmare. As ever your efforts are appreciated.
                I was thinking of another function suggestion should it be practical... It may already be possible & I missed it.
                Currently I have two values displayed on a single data field in order to record one to the FIT summary & the other to the graph. I don't necessarily need to see the value that's graphed whilst riding but it's handy for post ride analysis. Is it possible to manipulate the formula for a value so it doesn't display but can be recorded to the appropriate part of the FIT file graph/summary/lapsummary.?


                • If I've understood correctly, apparently if you put ; after the the first formula then it won't be displayed, and if you put +' '+ then both will be displayed. Works at least for recordsummary and recordlap, like I noted in my previous examples. Haven't tried myself with record and this is not in the examples, but would seem logical that it would work the same. If so, then you could try something like:

                  recordsummary(avg(power)) ; record(power) ; hr

                  Which would record power avg as total summary, record realtime power graph, and show some totally other metric during the workout.

                  Stuff like this just makes you love AppBuilder and I don't know any other data field that can offer this kind of flexibility.
                  Last edited by JTH9; 12-07-2018, 02:32 AM.


                  • Brilliant. Thank you. I'll give it a whirl


                    • Apologies for asking all these questions. I'm looking for a way to round a value down to the lowest whole number ie 20.1, 20.24, 20.5 or 20.75 etc would be rounded to 20. I see the ROUND(x) function will round to the nearest whole number not necessarily the lowest. I don't think I can use the FORMATNUMBER(x) function either as that seems to also perform rounding. Does anyone know if this is possible?


                      • hotdogpartysausage No worries.

                        If you want to round down, use:
                        x div 1

                        div is integer division, which rounds down.

                        And yes, as JTH9 pointed out:
                        x ; y = y
                        x ; y ; z = z
                        and so on.

                        The idea is that x may have "side-effects" (e.g. recording to FIT, alerting with a tone or vibe, setting a user variable), so the semicolon operator is there to let you have the side-effects of x while using y in calculations, display or recording.


                        • Thanks guys, the RECORD & DIV examples worked a charm . This tinkering is getting a bit addictive


                          • looking for a "Average Watts per Kilogram" cycling data field for Edge 820, (The garmin edge has a pre-installed Watts per Kilogram data field, I would like an average of that). Average Power in Watts from a power meter divided into body weight in Kilograms auto updating over duration of the ride, accurate to 2 or 3 decimal points eg 0.00 or 0.000 Thanks in Advance


                            • Big-Dave-Road-MTB, try this formula:
                              formatdecimal(avg(power) / userweight, 3)

                              Assuming your weight units are set to kg.
                              Last edited by FlowState; 12-10-2018, 10:53 AM.


                              • The same formula, regardless of unit settings:
                                formatdecimal(avg(power) / (userweight_raw / 1000), 3)

                                Latest update:

                                Add formatdecimal(x, n) function: formats x to n decimal places.

                                e.g. formatdecimal(power, 3)

                                formatdecimal(x) still formats x to 2 decimal places, by default.
                                Last edited by FlowState; 12-10-2018, 11:03 AM.