Call them features, quirks, bugs, or oversights… Regardless, having finally finished my app (!!!), I’ve compiled a list of the least obvious/intuitive stumbling blocks I’ve encountered with AppGyver. It is not meant to be a list of complaints (all of these have been discussed and are or will be reported as bugs and admin has been super responsive), but rather a helpful cheat-sheet to save other members of my team (and now you!) a lot of time troubleshooting.
Appgyver Quirks / Tips & Tricks
- When setting a variable or variable field from a single field of a data variable, use the “Function” binding type (e.g. manually type “data.shipData.fields.seat1.stringValue”) instead of the “Variable” binding type (point & click). Otherwise AppGyver inexplicably tries to fill in the entire data variable (not just the field).
- Repeated elements – and anything inside them, e.g. nested repeats – will only refresh if there has been a change in the data source they’re being repeated from. Which means:
(a) If there’s something inside a repeated element that you want to refresh, you have to make an arbitrary change to something in the topmost repeated data source in order for the change to show up, and
(b) In your logic flow, you will want to refresh the data source of the interior/lower-level repeated elements before you refresh the data source of the top-level repeated element.
- Images without a set height will only shrink when the window size changes, but won’t get larger when the window is expanded again. To get around this, you need to set a height, e.g. as a % or as a function of the window height. (If as a %, this may also mean you need to set the heights of their containers, and so on… CSS sizing is super confusing so good luuuuuuck!)
- “Alerts” terminate the logic flow, despite having an output. (The output doesn’t do anything.) If you want to continue the logic flow, do so from the prior node and make the alert a separate offshoot.
- The “viewport size” variable is only set once, on page load; if you resize the window it will not change.