After many years of evolution with the PathSpan and EstimationLine apps, there was a complete rewrite into the Swift programming language. The configuration files were generalized and a common framework emerged.
The result of that evolution is an App that can be reused to implement new tests through configuration only. This allows the experiment implementation to concentrate only on the new needs and reuse all the basic phases in common. This minimizes the time to deploy a new experiment, and makes it feasible to have experiments customized to each research team.
All the apps use this common framework now; the difference is in the configuration values. This documentation will apply to all the experiments. Some of the configuration items emerged to solve a specific need and you definitely do not need to use them all.
Before beginning a session you can enter information such as birth date, gender and a unique ID. This allows you to match up the ID with any personal identifying information that is separated from the collected results for privacy protection of the participant.
The set of tests needed for any particular field study can be pre-configured to help reduce any experimenter errors.
All data is recorded by the app and output in CSV format. This makes it easy to analyze in Excel, SPSS or any other data analysis program. The format is specifically designed to be easily to analyze in statistical analysis programs like SPSS or R.
The results from each stimuli/test are emitted on one line of a CSV file. This file is automatically tagged with an iPad specific filename to avoid results from multiple iPads from accidentally overwriting any existing result files.
The output is configurable including header names and the date formats are in UTC time and a date easily used by analytics applications.
Many computations can be done as the data is recorded to reduce common analysis steps, such as recording if answers are correct and the participant age in months. Custom calculations are powered by an internal expression calculator that is also configurable.
The timing of events is as repeatable as possible by using the iPad. The time a stimulus is shown is synchronized to the actual display frame time, not just the code running time. The touch time for answers is reported from the iPad event handling system that returns a touch time. There is no running of garbage collectors, as in some languages, that can add indeterminate time delays.
Nevertheless, there is some intrinsic time taken by the iPad hardware to detect touches that is not a published number, but is likely very similar between iPads. This will allow many researchers to reproduce experiments in longitudinal studies and around the world, allowing future collaborative studies.
Everything in an experiment is built on "Items" that can be just for display or also for interaction. All Items share some common configuration.
Some specialized Items include:
Each experiment design needs careful design in order to handle all the desired events and, this too, is fully configurable. Each event, user-touch or timer expiring, can execute a sequence of primitives: