Global REAL variables with initialisation expression and recalculated every cycle

Global REAL variables that:

  1. can be referenced by all objects/layers
  2. can be initialised by an expression that is automatically called when the watch starts
  3. are updated first ( before any other object/layer ) every watch cycle/tick based on an update expression

Having such variables would greatly improve the efficiency of watch face “programs” that currently have multiple layers all having to calculate the same expression a number of times every second. Not to mention the great reduction in complexity that would speed development and reduce the time needed to debug.

Great idea!

4 Likes

I have suggested this before … and it languished.


I currently think a ‘white box’ engine is a better / cleaner approach:

  • supports time/date arithmetic, including calendar (events) and timezones
  • supports custom (user) variables (as number, string, or time/date values)
  • supports boolean and state fields (vast improvement over current/new -decr/+incr/reset), including initial state and coupling (conditional logic, triggered by variable change/update)
  • supports extended Chronograph/Stopwatch capabilities: enhanced start/stop, laps, multiple target (incl. difference)
  • returns rotation values (already cooked)
  • returns time/date fields (based on calculated values, with the preferred locale, 12/24, style, etc.)
  • could be extended to: astronomical/astrological data (Earth, Sun, moon, planets), enhanced fitness analysis (rest/work periods, targets, trends), etc.

This would greatly simplify the Facer engine (for Creator, or on the watch/device), and (as you noted) greatly reduce the amount of computation each UI update (time-tick/event). And all those customised tags and functions, that only support certain needs/preferences, could also be expunged.

5 Likes

Well, but i would add time or/and frame based animations/events as well, like in flash or the director.

2 Likes

Just like VAR a user defined variable can be a layer with two fields: expression and name. Then from another layers it can be referenced as a tag: #UserVariableName#

1 Like