Just for discussion. Please tell me what you think. This would solve a lot of the Issues we are currently running into, and - from what i can see - would somewhat fit into the Garmin-Ecosystem.
Currently Datafields have some Limitations (if i am missing something, please tell me!).
- If i were to use a little more complex calculations in a Datafield and i want to provide multiple Datafields based on the same calculations, i can not share the data and have to do it all over again for other Datafields. this adds a lot of overhead and is also bad for battery life.
- If i have an external Sensor providing data (which in my case i have) and i want to provide multiple Datafields based on that data, i would have to open up multiple connections (and in that case i am limited to 2 as far as i know). this adds a lot of overhead and is also bad for battery life.
- I dont have access to the sensor-data like accelerometers. this is propably to prevent datafields from doing complex calculations and in order to save battery-life, i get that...
My suggestion would be to have a new AppType, something like a ActivityPlugin.
In order to save resources, one could e.g. allow only one ActivityPlugin per Activity.
This one would:
- run in background of an activity
- have e.g. sensor-data-access
- can manage external sensor data
- do fit contributions
- "somehow" provide the generated data to the DataFields
One of the major challenges i see would be, that DataFields could depend on specific ActivityPlugins. Therefore one would have to have a good system in place that might automatically install an ActivityPlugin that is needed by a DataField (if not already installed) and it needs to be made transparent to the user of the watch if limitations arise (e.g. if only one ActivityPlugin could run at a time, DataFields that depend on different ActivityPlugins could not be active at the same time...)