Jool was an experiment in changing physical activity behavior using technology. The team included game and product designers, child psychologists and technical resources. The mission was to find a product that would encourage children to perform physical activity. The team came up with a game centric reward system running on top of a wearable device and a mobile app. The effectiveness of the product over time was measured using interviews and statistical analysis of usage data.
The experiment lasted several weeks and was conducted with different groups of children in Israel. The children went through several guided sessions and then left to use the system on their own terms. Interviews were conducted at specific milestones while usage data was collected by the wearable devices and stored for post analysis.
Technology included three components: A wearable activity tracker, a mobile application and a server. A particular point of complexity was syncing data between the three layers. The wearable was always offline and had no access to the server, thus, the mobile app served as a temporary data host. In addition, the mobile app needed to deal with online / offline modes and bidirectional sync for multi-user games. With all three layers holding a partial copy (snapshot) of the data they needed to perform ad-hoc deltas sync based on Bluetooth proximity and/or network availability while preserving a consistent view of the data.
The wearable activity tracker was built on top of a hacked Motorola's MOTOACTV which is a commercial Android based smart-watch. My hacked version ran Jool's services, including a proprietary algorithm on top of the wearable's sensors used to determine the child's activity type and rigorousness. Immediate feedback was given the child on the wearable's screen and recorded to a log. When in proximity to a paired mobile phone, the wearable flushed the log over Bluetooth for further logging and processing.
The mobile phone application was the game center. Games revolved around achieving and competing for various aspects of activity: diversity, rigorousness and duration. They included single-user and multi-user versions, synchronous and asynchronous versions and short term (1-3 minutes) and long term (1-7 days) versions.
The server included a typical REST API for games metadata and social network features, primarily consumed by the mobile application. In addition, it included a realtime communication channel over cloud messaging to provide push notifications driving synchronous multi-users games. The server was the final recipient of the detailed log data which collected by the wearable. It performed post-processing on this data providing final game results and statistics used for performance dashboards and analysis of product adoption.