Closed Whathecode closed 3 years ago
@ltj I finally wrote up the refactoring requirements here for the upcoming WebTask
as part of our technical meeting. Could you please have a proofread and see whether I am missing anything we discussed?
I will omit the ActiveTask
, which we ended up deciding to call InteractiveTask
from this issue. It might still be needed, but it is unknown which members are common to these tasks at this time, and thus whether an intermediate abstract type is necessary.
The current concrete classes for
TaskDescriptor
andMeasure
(ConcurrentMeasure
andPhoneSensorMeasure
) were introduced very early on. We have since learned a lot, and are in the process of adding new measures and tasks. This makes it a good time to re-evaluate whether we like the current concrete abstractions.ConcurrentTask
:PassiveSensingTask
which may solely contain measures which collect data passively.PhoneSensorMeasure
:ActiveTask
(working title):SurveyTask
), want to add (WebTask), and envision to add (SlideshowTask
) all contain presentation logic: what to present and when to present it. In addition, we can envision that they might be more opinionated about when measures should start or stop within the lifetime of the task (e.g., for particular slides), unlikePassiveSensingTask
of which the measures are expected to run until the task has been stopped (using a trigger).Changing our current concrete tasks and measures accordingly will make code on client runtimes more reusable. They can act upon these common abstractions in a uniform manner.