<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.0 20040830//EN" "http://dtd.nlm.nih.gov/publishing/2.0/journalpublishing.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="2.0">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">JMU</journal-id>
      <journal-id journal-id-type="nlm-ta">JMIR mHealth uHealth</journal-id>
      <journal-title>JMIR mHealth and uHealth</journal-title>
      <issn pub-type="epub">2291-5222</issn>
      <publisher>
        <publisher-name>JMIR Publications Inc.</publisher-name>
        <publisher-loc>Toronto, Canada</publisher-loc>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="publisher-id">v4i2e46</article-id>
      <article-id pub-id-type="pmid">27261155</article-id>
      <article-id pub-id-type="doi">10.2196/mhealth.5397</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Original Paper</subject>
        </subj-group>
        <subj-group subj-group-type="article-type">
          <subject>Original Paper</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Survalytics: An Open-Source Cloud-Integrated Experience Sampling, Survey, and Analytics and Metadata Collection Module for Android Operating System Apps</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="editor">
          <name>
            <surname>Dias</surname>
            <given-names>Casimiro</given-names>
          </name>
        </contrib>
      </contrib-group>
      <contrib-group>
        <contrib contrib-type="reviewer">
          <name>
            <surname>Eckhoff</surname>
            <given-names>Randall</given-names>
          </name>
        </contrib>
        <contrib contrib-type="reviewer">
          <name>
            <surname>Ferguson</surname>
            <given-names>Stuart</given-names>
          </name>
        </contrib>
      </contrib-group>
      <contrib-group>
        <contrib contrib-type="author" id="contrib1" corresp="yes">
          <name name-style="western">
            <surname>O'Reilly-Shah</surname>
            <given-names>Vikas</given-names>
          </name>
          <degrees>MD, PhD</degrees>
          <xref rid="aff1" ref-type="aff">1</xref>
          <address>
            <institution>Assistant Professor of Anesthesiology</institution>
            <institution>Emory University and Children's Healthcare of Atlanta</institution>
            <addr-line>3B South, Room B347</addr-line>
            <addr-line>1364 Clifton Road NE</addr-line>
            <addr-line>Atlanta, GA, 30322</addr-line>
            <country>United States</country>
            <phone>1 615 335 3808</phone>
            <fax>1 404 778 0652</fax>
            <email>voreill@emory.edu</email>
          </address>
          <ext-link ext-link-type="orcid">http://orcid.org/0000-0003-0741-0291</ext-link>
        </contrib>
        <contrib contrib-type="author" id="contrib2">
          <name name-style="western">
            <surname>Mackey</surname>
            <given-names>Sean</given-names>
          </name>
          <degrees>MD, PhD</degrees>
          <xref rid="aff2" ref-type="aff">2</xref>
          <ext-link ext-link-type="orcid">http://orcid.org/0000-0001-7744-5348</ext-link>
        </contrib>
      </contrib-group>
      <aff id="aff1">
        <sup>1</sup>
        <institution>Assistant Professor of Anesthesiology</institution>
        <institution>Emory University and Children's Healthcare of Atlanta</institution>
        <addr-line>Atlanta, GA</addr-line>
        <country>United States</country>
      </aff>
      <aff id="aff2">
        <sup>2</sup>
        <institution>Redlich Professor of Anesthesiology, Perioperative and Pain Medicine, Neurosciences and Neurology</institution>
        <institution>Stanford University</institution>
        <addr-line>Stanford, CA</addr-line>
        <country>United States</country>
      </aff>
      <author-notes>
        <corresp>Corresponding Author: Vikas O'Reilly-Shah 
        <email>voreill@emory.edu</email></corresp>
      </author-notes>
      <pub-date pub-type="collection"><season>Apr-Jun</season><year>2016</year></pub-date>
      <pub-date pub-type="epub">
        <day>03</day>
        <month>06</month>
        <year>2016</year>
      </pub-date>
      <volume>4</volume>
      <issue>2</issue>
      <elocation-id>e46</elocation-id>
      <!--history from ojs - api-xml-->
      <history>
        <date date-type="received">
          <day>30</day>
          <month>11</month>
          <year>2015</year>
        </date>
        <date date-type="rev-request">
          <day>5</day>
          <month>1</month>
          <year>2016</year>
        </date>
        <date date-type="rev-recd">
          <day>18</day>
          <month>1</month>
          <year>2016</year>
        </date>
        <date date-type="accepted">
          <day>28</day>
          <month>1</month>
          <year>2016</year>
        </date>
      </history>
      <!--(c) the authors - correct author names and publication date here if necessary. Date in form ', dd.mm.yyyy' after jmir.org-->
      <copyright-statement>©Vikas O'Reilly-Shah, Sean Mackey. Originally published in JMIR Mhealth and Uhealth (http://mhealth.jmir.org), 03.06.2016.</copyright-statement>
      <copyright-year>2016</copyright-year>
      <license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/2.0/">
        <p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work, first published in JMIR mhealth and uhealth, is properly cited. The complete bibliographic information, a link to the original publication on http://mhealth.jmir.org/, as well as this copyright and license information must be included.</p>
      </license>
      <self-uri xlink:href="http://mhealth.jmir.org/2016/2/e46/" xlink:type="simple"/>
      <abstract>
        <sec sec-type="background">
          <title>Background</title>
          <p>We describe here Survalytics, a software module designed to address two broad areas of need. The first area is in the domain of surveys and app analytics: developers of mobile apps in both academic and commercial environments require information about their users, as well as how the apps are being used, to understand who their users are and how to optimally approach app development. The second area of need is in the field of ecological momentary assessment, also referred to as experience sampling: researchers in a wide variety of fields, spanning from the social sciences to psychology to clinical medicine, would like to be able to capture daily or even more frequent data from research subjects while in their natural environment.</p>
        </sec>
        <sec sec-type="objective">
          <title>Objective</title>
          <p>Survalytics is an open-source solution for the collection of survey responses as well as arbitrary analytic metadata from users of Android operating system apps.</p>
        </sec>
        <sec sec-type="methods">
          <title>Methods</title>
          <p>Surveys may be administered in any combination of one-time questions and ongoing questions. The module may be deployed as a stand-alone app for experience sampling purposes or as an add-on to existing apps. The module takes advantage of free-tier NoSQL cloud database management offered by the Amazon Web Services DynamoDB platform to package a secure, flexible, extensible data collection module. DynamoDB is capable of Health Insurance Portability and Accountability Act compliant storage of personal health information.</p>
        </sec>
        <sec sec-type="results">
          <title>Results</title>
          <p>The provided example app may be used without modification for a basic experience sampling project, and we provide example questions for daily collection of blood glucose data from study subjects.</p>
        </sec>
        <sec sec-type="conclusions">
          <title>Conclusions</title>
          <p>The module will help researchers in a wide variety of fields rapidly develop tailor-made Android apps for a variety of data collection purposes.</p>
        </sec>
      </abstract>
      <kwd-group>
        <kwd>experiential sampling</kwd>
        <kwd>ecological momentary assessment</kwd>
        <kwd>quantified self</kwd>
        <kwd>analytics</kwd>
        <kwd>Android</kwd>
        <kwd>Amazon Web Services</kwd>
        <kwd>DynamoDB</kwd>
        <kwd>NoSQL</kwd>
        <kwd>surveys</kwd>
        <kwd>microsurveys</kwd>
        <kwd>mobile surveys</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec sec-type="introduction">
      <title>Introduction</title>
      <p>The explosion of cheap mobile computing technology has led to rapid global adoption of smartphone and tablet technology, with annual smartphone sales accounting for the majority of mobile phones worldwide by 2013 [<xref ref-type="bibr" rid="ref1">1</xref>]. The Android operating system (OS) is loaded onto more than 75% of these smartphones [<xref ref-type="bibr" rid="ref1">1</xref>,<xref ref-type="bibr" rid="ref2">2</xref>]. Accompanying the mobile computing revolution has been the explosion of apps available for mobile OSs, with 1.6 million apps available in Google Play for the Android OS as of July 2015 [<xref ref-type="bibr" rid="ref3">3</xref>].</p>
      <p>The profusion of mobile phones has put vast processing power into the pockets of a large swath of the population. Thus, successful apps with a large number of users may experience commercial success, but also provide an opportunity for studying population-level behavioral dynamics with sample sizes and data precision heretofore impossible to collect.</p>
      <p>The corresponding author has written an app, “Anesthesiologist,” for the Android OS platform that has experienced a moderate degree of success, with 100,000 users from around the world as of late 2015 [<xref ref-type="bibr" rid="ref4">4</xref>]. In planning and deploying a research study related to this app, we developed a reusable module for the Android OS that fills 2 broad areas of need.</p>
      <p>First, this research study highlighted the need for a tool that allows dual collection of survey data as well as analytics. This allows us to take the analytics data, and behavioral aspects of app use related to these analytics, and parse it on the basis of usage by specific subpopulations. Other developers may be interested in combining analytics with survey data to inform their development cycle. Finally, commercial app developers are particularly interested in characterizing the demographics and usage patterns of their user base for targeted advertising purposes. There are several private commercial solutions that can provide some of the functionality of this module in terms of survey administration [<xref ref-type="bibr" rid="ref5">5</xref>-<xref ref-type="bibr" rid="ref8">8</xref>]. However, as mature as some of these products are, none are open source and all are fee-for-service. Moreover, none appear to have the flexibility and extensibility to allow the capture of arbitrary app analytics, requiring 2 vendor solutions to combine analytics with survey administration.</p>
      <p>The ability to combine survey and analytic data on a per-user basis is the basis on which investigators can understand how particular subpopulations are using their app. Using “Anesthesiologist” as an example, we know that the app is used by health care practitioners in a wide variety of roles, but we need to use surveys to differentiate the attending anesthesiologist from the junior level trainee. We are also interested in understanding the frequency of app usage, which we can capture using the analytics piece. However, to test the hypothesis that junior level trainees use the app more frequently than attendings, we need to combine this data. The ability to combine analytics with survey data allows investigators to perform a much more nuanced analysis of incoming data.</p>
      <p>The second need served by this project is in the area of ecological momentary assessment [<xref ref-type="bibr" rid="ref9">9</xref>-<xref ref-type="bibr" rid="ref11">11</xref>], also referred to as experiential sampling. Experience sampling procedures have been used for many years to facilitate the collection of data from subjects during the normal course of their day, as opposed to collection of this data during visits to an office or a lab. This reduces biases in the data related to the need for subjects to remember or aggregate their experiences over a certain interval [<xref ref-type="bibr" rid="ref12">12</xref>]. These procedures also allow subjects to answer questions within their natural environment as well, perhaps reducing error or bias related to being in the laboratory environment [<xref ref-type="bibr" rid="ref12">12</xref>]. Quantified-self movement enthusiasts likewise wish to take advantage of modern technology in the pursuit of “self-knowledge through numbers” [<xref ref-type="bibr" rid="ref13">13</xref>-<xref ref-type="bibr" rid="ref15">15</xref>].</p>
      <p>Several modern experience sampling tools have been developed and released [<xref ref-type="bibr" rid="ref16">16</xref>-<xref ref-type="bibr" rid="ref18">18</xref>]. In this arena, mature products have significant costs associated with their use. These include SurveySignal [<xref ref-type="bibr" rid="ref19">19</xref>], Diario [<xref ref-type="bibr" rid="ref20">20</xref>], LifeData [<xref ref-type="bibr" rid="ref21">21</xref>], mEMA [<xref ref-type="bibr" rid="ref22">22</xref>], iForm [<xref ref-type="bibr" rid="ref23">23</xref>], movisensXS [<xref ref-type="bibr" rid="ref24">24</xref>], and iSurvey [<xref ref-type="bibr" rid="ref25">25</xref>]. Even the relatively mature open-source solutions do not implement enterprise database solutions to provide extensibility, scalability, and security. Paco [<xref ref-type="bibr" rid="ref26">26</xref>], Aware [<xref ref-type="bibr" rid="ref27">27</xref>,<xref ref-type="bibr" rid="ref28">28</xref>], and funf [<xref ref-type="bibr" rid="ref29">29</xref>] require setup of stand-alone servers, with their attendant information technology (IT) and security concerns as well as the associated cost of hardware and maintenance. Emotion sense [<xref ref-type="bibr" rid="ref27">27</xref>] and Purple Robot [<xref ref-type="bibr" rid="ref30">30</xref>] do not offer a storage solution, only export of JSON.</p>
      <p>Survalytics represents a substantial improvement over these packages by solving the backend database problem by integrating with Amazon Web Services (AWS) DynamoDB. Amazon Web Services DynamoDB is a hosted NoSQL database service with a flexible data model. For the requirements of Survalytics, minimal database setup is required (described in <xref ref-type="app" rid="app1">Multimedia Appendix 1</xref>). At the time of writing, AWS offers <italic>indefinite</italic> free-tier service on DynamoDB [<xref ref-type="bibr" rid="ref31">31</xref>], with 25 GB of free storage and enough free throughput to handle 200 million requests per month. This represents far more capacity than most projects will ever require.</p>
      <p>Effective question delivery and response storage is impossible without a solution to this the backend database problem. Compared with stand-alone server solutions, AWS offers intrinsically better security at zero cost, with physical security at the AWS server farms, enterprise-level security architecture and monitoring, active feature development and resource management by AWS, and fine-grained access management options. Amazon Web Services also offers the advantage of virtually guaranteed uptime and extremely low access latency. Survalytics was partially built based on our experience with the development of an unreleased Android port of the Experience Sampling Program, a now antiquated ecological momentary assessment solution built for Palm OS that suffered from many of these problems [<xref ref-type="bibr" rid="ref12">12</xref>,<xref ref-type="bibr" rid="ref32">32</xref>].</p>
      <p>In short, Survalytics represents a significant leap forward for open-source experience sampling solutions and fills an unmet need in the research community by combining analytics with one-time and ongoing survey question administration on a popular, cheap, widely available OS platform with integration of a cloud-based database service. We expect this combination will fill an important need in the research community by serving broad swaths of investigators interested in app analytics and administration of one-time surveys to their user base as well as those interested in ecological momentary assessment.</p>
    </sec>
    <sec sec-type="methods">
      <title>Methods</title>
      <sec>
        <title>Software Functionalities</title>
        <p>The 3 major functionalities of the module are as follows:</p>
        <list list-type="order">
          <list-item>
            <p>Stand-alone app for experience sampling (ongoing questions) and one-time survey administration</p>
          </list-item>
          <list-item>
            <p>Add-on module for the administration of surveys to users of existing Android apps</p>
          </list-item>
          <list-item>
            <p>Add-on module for the collection of arbitrary data from app interactions or background processes</p>
          </list-item>
        </list>
      </sec>
      <sec>
        <title>Software Architecture</title>
        <p>We have assembled the basic metadata about Survalytics in <xref ref-type="table" rid="table1">Table 1</xref> and listed the required AWS software development kit (SDK) components in <xref ref-type="boxed-text" rid="box1">Textbox 1</xref>. The module is designed as a set of core (<xref ref-type="table" rid="table2">Table 2</xref>) and supplemental (<xref ref-type="table" rid="table3">Table 3</xref>) Java classes with minimal user modification required in order for the module to function. These modifications are straightforward and allow the high degree of flexibility for the various applications that this module will likely serve. <xref ref-type="fig" rid="figure1">Figure 1</xref> provides an overview of the life cycle of the module, and <xref ref-type="fig" rid="figure2">Figure 2</xref>, <xref ref-type="app" rid="app5">Multimedia Appendix 5</xref> provides the details of the interactions between the Java classes. Black arrows signify the calls between classes, and red arrows signify the flow of data into or out of databases. Light green arrows indicate OS-level broadcast events that are received by the module to activate background activity.</p>
        <p>In order to get the software compiled and running, the only <italic>required</italic> modification is for users of the module to provide AWS credentials and table data in AWSConstants.java (as public static final variables). <xref ref-type="app" rid="app1">Multimedia Appendix 1</xref> provides a walk-through of the process for establishing an AWS account, creating the 2 required DynamoDB tables (for Questions and for Responses), and creating an unauthenticated identity pool with strict security limitations. In particular, this identity pool is strictly limited to reading the Questions table and to writing single responses to the Responses table. <xref ref-type="app" rid="app2">Multimedia Appendix 2</xref> provides a walk-through of the process for formatting and inserting questions into the Questions table, and <xref ref-type="app" rid="app3">Multimedia Appendix 3</xref> provides a set of sample questions. The schema used is described in <xref ref-type="app" rid="app2">Multimedia Appendices 2</xref> and, section I.</p>
        <table-wrap position="float" id="table1">
          <label>Table 1</label>
          <caption>
            <p>Code metadata.</p>
          </caption>
          <table width="593" border="0" cellpadding="7" cellspacing="0" rules="groups" frame="hsides">
            <col width="222"/>
            <col width="343"/>
            <thead>
              <tr valign="top">
                <td>Descriptor</td>
                <td>Description</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td>Current code version</td>
                <td>v1.0</td>
              </tr>
              <tr valign="top">
                <td>Permanent link to code</td>
                <td>http://dx.doi.org/10.15139/S3/12126</td>
              </tr>
              <tr valign="top">
                <td>Legal Code License</td>
                <td>Apache 2.0</td>
              </tr>
              <tr valign="top">
                <td>Code versioning system used</td>
                <td>None</td>
              </tr>
              <tr valign="bottom">
                <td>Software code languages, tools, and services used</td>
                <td>Java, Amazon Web Services (AWS) DynamoDB, Eclipse Mars IDE<sup>a</sup></td>
              </tr>
              <tr valign="top">
                <td>Compilation requirements, operating environments &#38; dependencies</td>
                <td>Eclipse Mars IDE <break/>Android SDK Target SDK &#62;=9 (GINGERBREAD) <break/>AWS SDK for Android</td>
              </tr>
              <tr valign="top">
                <td>Support email for questions</td>
                <td>voreill@emory.edu</td>
              </tr>
            </tbody>
          </table>
          <table-wrap-foot>
            <fn id="table1fn1">
              <p><sup>a</sup>IDE: integrated development environment.</p>
            </fn>
          </table-wrap-foot>
        </table-wrap>
        <boxed-text id="box1" position="float">
          <title>Required Amazon Web Services Android SDK JAR files (tested with version 2.2.5).</title>
          <p>aws-android-sdk-cognito-x.x.x.jar</p>
          <p>aws-android-sdk-core-x.x.x.jar</p>
          <p>aws-android-sdk-ddb-x.x.x.jar</p>
          <p>aws-android-sdk-ddb-mapper-x.x.x.jar</p>
        </boxed-text>
        <table-wrap position="float" id="table2">
          <label>Table 2</label>
          <caption>
            <p>Core Survalytics Java classes.</p>
          </caption>
          <table width="624" border="0" cellpadding="7" cellspacing="0" rules="groups" frame="hsides">
            <col width="330"/>
            <col width="266"/>
            <thead>
              <tr valign="top">
                <td>Names</td>
                <td>Notes</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="bottom">
                <td>SA_AWSConstants.java</td>
                <td>Required modification: AWS<sup>a</sup>credentials</td>
              </tr>
              <tr valign="bottom">
                <td>SA_AWSDownloadSurvey.java</td>
                <td>Pulls Questions into local DB<sup>a</sup></td>
              </tr>
              <tr valign="top">
                <td>SA_ResponseSenderAsynctaskService.java</td>
                <td>Packages Responses and stores in local DB for later upload</td>
              </tr>
              <tr valign="top">
                <td>SA_AWSInsertStudyJSON.java</td>
                <td>Pushes Responses to AWS</td>
              </tr>
              <tr valign="top">
                <td>SA_DisplaySurveyQuestion.java</td>
                <td>Displays Questions</td>
              </tr>
              <tr valign="top">
                <td>SA_QuestionDB.java</td>
                <td>Wrapper class for all local DB calls</td>
              </tr>
              <tr valign="top">
                <td>SA_Question.java</td>
                <td>AWS DynamoDB Annotated Question object</td>
              </tr>
              <tr valign="top">
                <td>SA_Response.java</td>
                <td>AWS DynamoDB Annotated Response object</td>
              </tr>
              <tr valign="top">
                <td>SA_AWSSurveyConnectivityBroadcastReceiver.java</td>
                <td>Background Question download and Response upload with connectivity change</td>
              </tr>
            </tbody>
          </table>
          <table-wrap-foot>
            <fn id="table2fn1">
              <p><sup>a</sup>AWS: Amazon Web Services; DB: database.</p>
            </fn>
          </table-wrap-foot>
        </table-wrap>
        <table-wrap position="float" id="table3">
          <label>Table 3</label>
          <caption>
            <p>Supplemental Survalytics Java classes.</p>
          </caption>
          <table width="624" border="0" cellpadding="7" cellspacing="0" rules="groups" frame="hsides">
            <col width="330"/>
            <col width="266"/>
            <thead>
              <tr valign="top">
                <td>Names</td>
                <td>Notes</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td>SA_AWSQuestionVerificationAndDisplay.java</td>
                <td>Question Display and Validation <break/>Should not be included in production release of application</td>
              </tr>
              <tr valign="top">
                <td>SA_NotificationAutomaticity.java <break/>SA_NotificationGroupNotifier.java <break/>SA_NotificationSetter.java</td>
                <td>Survalytics Sampling: add-on classes for ecological momentary assessment (experiential sampling)</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>Only 1 of the core classes—DisplaySurveyQuestion—must be called by the end user to achieve survey functionality (dark arrow from the main user interface (UI) activity). All of the other classes provide background functionality for the module. DisplaySurveyQuestion is an Activity that displays questions present in the local database and also initiates a download of questions (red data flow arrow) from the cloud AWS table if no new questions are available. The activity recursively cycles through unanswered questions until no relevant questions remain. The end user has the option to delay answering questions until later (“Not now/answer later” button, easily removed from the UI if investigators do not wish participants to be able to delay answering).</p>
        <p>In terms of analytics, as indicated in <xref ref-type="fig" rid="figure1">Figure 1</xref> by dotted lines, users of the module may also optionally store additional types of data such as UI clicks, user inputted data, app metadata, or otherwise processed data using a direct call to ResponseSenderAsyncTaskService. The Responses class should be modified under these circumstances. In the study of the “Anesthesiologist” app mentioned in the Introduction section, we use this analytics storage component to track a variety of app uses, including total time using the app (per launch) and a variety of in-app clicks. This allows fine-grained analysis of the app usage linked directly to the survey responses collected, as described above, using DisplaySurveyQuestion.</p>
        <p>Whether storing survey or analytics data, the data are stored on-device before attempting upload. If the device is offline, data are persisted in a private SQLite database on-device until the device comes online. The Android OS security model prevents access to these private SQLite databases by other apps and is only otherwise accessible by physically connecting a rooted, unlocked Android device to a computer. The change in connectivity is detected by the package (<xref ref-type="fig" rid="figure2">Figure 2</xref>, <xref ref-type="app" rid="app5">Multimedia Appendix 5</xref>) and upload of all stored data is initiated at that time.</p>
        <p><xref ref-type="app" rid="app4">Multimedia Appendix 4</xref> contains the full JSON schema for the app and AWS tables and demonstrates the modifications to Responses required in Section IV. However, it should be noted that all data packaged into JSON for upload are transmitted to the final AWS Responses table in the “json_str” field. Therefore, even without modification to Responses, the data will remain preserved. This comes at the price of doubling the stored data; because storage is cheap and data are precious, this prevents situations where incorrect modification of Responses leads to loss of data. In this situation, users of the module will need to extract the JSON from the AWS Responses table to get at the data. Eventually, the AWS SDK for Android will likely include functionality to allow insertion of arbitrary JSON directly into DynamoDB tables, already a feature of the AWS SDK for Java [<xref ref-type="bibr" rid="ref33">33</xref>]. This should obviate the need for Responses and for preventative double storage.</p>
        <fig id="figure1" position="float">
          <label>Figure 1</label>
          <caption>
            <p>Overview of the Survalytics platform architecture. Black arrows are calls between subclasses of the module. Red arrows demonstrate data flow. Dotted lines serve to clarify the functionality and data storage existing in the original app, in the Survalytics module, and in the cloud database. The software module may be called by the primary app in several different ways. For surveys, the app should send a call to display survey questions. The app may make a different call to store arbitrary analytic data in the cloud. Finally, if desired, the app can call the experience sampling submodule. AWS: Amazon Web Services.</p>
          </caption>
          <graphic xlink:href="mhealth_v4i2e46_fig1.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
        </fig>
      </sec>
      <sec>
        <title>Illustrative Example</title>
        <p>Users may follow one of the many available guides for the setup of an Android integrated development environment (IDE) [<xref ref-type="bibr" rid="ref34">34</xref>,<xref ref-type="bibr" rid="ref35">35</xref>]. Survalytics was coded and tested using the Eclipse IDE [<xref ref-type="bibr" rid="ref36">36</xref>]. Android Studio [<xref ref-type="bibr" rid="ref37">37</xref>] is an IDE provided by Google for Android development, and the use of the module in that environment may require modifications to the module other than those described in the <xref ref-type="app" rid="app4">Multimedia Appendix 4</xref>.</p>
        <p>After setting up the AWS DynamoDB tables as outlined in <xref ref-type="app" rid="app1">Multimedia Appendix 1</xref> and inserting questions into the Questions table as outlined in <xref ref-type="app" rid="app2">Multimedia Appendix 2</xref>, the project should be loaded into the selected development environment and modifications made to AWSConstants.java to include the AWS security credentials gathered in <xref ref-type="app" rid="app1">Multimedia Appendix 1</xref>. The package also relies on the Android SDK for AWS [<xref ref-type="bibr" rid="ref37">37</xref>,<xref ref-type="bibr" rid="ref38">38</xref>]. Once downloaded, the 4 required Java Archive (JAR) files in <xref ref-type="boxed-text" rid="box1">Textbox 1</xref> should be copied into the <italic>libs</italic> folder of the project. At this point, the project may be compiled and deployed onto a test or emulated device.</p>
        <p>Important permissions and declarations are included in the Android manifest file and should be made note of when using Survalytics as an add-on module. These include permissions for Internet connectivity and use of the Global Positioning System and declarations for all the Survalytics classes. Any projects making use of the Survalytics must include these permissions and declarations in the Android manifest for proper functionality.</p>
        <p>The package may be tested using the questions provided in <xref ref-type="app" rid="app3">Multimedia Appendix 3</xref>, modeled on the types of questions that might be asked in a study of blood glucose monitoring in diabetic patients. The Survalytics Question Builder for Google Sheets provides a simple template that will take the desired values for <italic>questionguid_str</italic>, <italic>ordinalposition_int</italic>, and so on and export JSON for easy insertion into the AWS Questions table. Users may validate the insertion of questions in the AWS Questions table using AWSQuestionVerificationAndDisplay, as discussed below.</p>
        <fig id="figure2" position="float">
          <label>Figure 2</label>
          <caption>
            <p>Detailed Survalytics platform architecture. The calls to be made from the primary app to the specific Java classes of the module are detailed here. In addition, the internal relationships between the classes of the module are also detailed. Black arrows are calls and red arrows demonstrate data flow. Light green arrows represent system level events that drive calls to the indicated classes. AWS: Amazon Web Services; DB: database; ESM: experience sampling module; IAM: Identity and Access Management; IP: Internet protocol address; JSON: JavaScript object notation; SQL: structured query language; UI: user interface. See <xref ref-type="app" rid="app5">Multimedia Appendix 5.</xref></p>
          </caption>
          <graphic xlink:href="mhealth_v4i2e46_fig2.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
        </fig>
        <p>The example app and questions provide insight into how the various functionalities of the module may be tied together to create a comprehensive study framework. Upon loading, an AlertDialog requesting consent for participation in the study is displayed. Acceptance or rejection of consent is uploaded to the AWS Responses table with entrytype “consentcode.” This is an example of direct upload of app UI data. Questions 10-40 are questions that are asked only once and collect basic demographic information about the study patients and their diabetes management. Question 100 is an ongoing experience sampling question asked daily at 11 am and 6 pm. Questions 101 and 110 illustrate the deletion of ongoing question 100 and insertion of the same ongoing question, except asked daily at 7 pm and then at 12 noon on Sunday only. Question 50 illustrates the use of <italic>delaybydays</italic> while question 60 illustrates the use of <italic>conditional-upon-questionguid</italic> and <italic>conditional-upon-responseid</italic>. The question will only be asked if question 40 (<italic>questionguid</italic> “DM1-FOLLOWUP”) was answered with <italic>responseid</italic> 1 (“Monthly”). Questions may also be <italic>conditionalbycountry</italic> ; this should be a comma-delimited list of International Organization for Standardization 3166 alpha-2 country codes listing the countries in which the question should be asked.</p>
        <p>A basic survey visualization tool is included with Survalytics. This is the AWSQuestionVerificationAndDisplay class. As demonstrated in the example app, we recommend including this class as a menu option during survey development and app testing. This class presents the entire survey present in the AWS Questions table for inspection. While processing the questions, it performs a series of validation checks, including uniqueness of <italic>ordinalposition</italic>, validity of <italic>conditional-upon-guid</italic> and each <italic>conditional-upon-responseid</italic>, validity of each <italic>notificationtime</italic>, and validity of <italic>deletequestion</italic>. All elements of the question, including conditionals by time or country, are displayed. In the case where questions are <italic>conditional-upon-guid</italic>, each of the <italic>conditional-upon-responseid</italic> is matched to the <italic>responseid_int</italic> of the original question and those <italic>response_str</italic> are displayed, allowing at a glance verification of branch points. The menu option and the class itself should be removed from the production version of the app.</p>
      </sec>
    </sec>
    <sec sec-type="discussion">
      <title>Discussion</title>
      <p>As indicated in the Introduction section, this project was motivated by the need for a tool with broad functionality allowing data capture across several domains. The flexible data model offered by NoSQL database solutions simplifies the approach to database management and data capture. By combining survey data with in-app usage analytics, we can capture detailed usage patterns of mobile Android apps and parse that behavior based on the collected demographics. As mentioned, the module will be deployed as part of a large research study of an international population of anesthesia providers. This study may shed important light on global practice patterns and areas for practice improvement in the global or in targeted communities. Most intriguingly, the module can serve not just to ask questions but also to deliver payloads of educational content to targeted end users based conditionally on their responses, location, and so on.</p>
      <p>The stand-alone experience sampling functionality fills a substantial need in that it is the first cloud-integrated open-source experience sampling program available for deployment on a modern smartphone platform. The uses of such a program span a wide variety of fields, from sociology to economics to psychology to the biomedical sciences. As mentioned, existing solutions either are expensive and closed-source or lack the broad functionality presented here. The previous unreleased port of the Experience Sampling Program (ESP) to Android, presented in a poster session to the American Society of Anesthesiologists, generated several unsolicited requests from interested research groups. Survalytics should be a welcome addition to the experience sampling community.</p>
      <p>One major advantage of Survalytics over existing packages is the use of AWS free-tier offerings. Amazon Web Services has a comprehensive security model (termed Identity and Access Management, or IAM), allowing extremely fine-grained permissions to be granted to various users. For example, users can have limited read and write capabilities down to the table level. Data security was a prime consideration in choosing AWS over other possible solutions; stand-alone servers may go without security updates in the absence of a mature IT support framework, and the other major NoSQL platform, MongoDB, offered very little in the way of granular security. Survalytics uses so-called “unauthorized entities” to access questions and write responses, but these “unauth identities” cannot write to the questions table or read the responses table if set up according to the instructions in <xref ref-type="app" rid="app1">Multimedia Appendix 1</xref>. All communication using the AWS SDK is, by default, secure sockets layer (SSL) encrypted. Access to data is limited by the account holder, and secondary users may be defined by that account holder using IAM with limited permissions. Certain AWS services are designed with Health Insurance Portability and Accountability Act (HIPAA) and personally identifiable information (PII) compliance in mind; DynamoDB is one of them. Interested parties may execute business associate agreements with AWS to use their services in a HIPAA compliant manner [<xref ref-type="bibr" rid="ref39">39</xref>].</p>
      <p>Using AWS carries some other significant advantages. There are mature SDKs available for a variety of platforms, including iOS, opening the possibility of developing Survalytics for other platforms (discussed below). Amazon Web Services offers a number of other free or low-cost services that may eventually be integrated into the Survalytics platform, including cloud computing and long-term archival services.</p>
      <p>Although the Survalytics package as offered provides all the essential tools required to deploy the functionalities provided, several avenues of development remain. A data exploration tool for basic exploratory data analysis and visualization of the AWS Responses table would be valuable, in particular for users with a substantial analytics component or for those users collecting large datasets. Additionally, a more integrated approach to question building and upload may be helpful for those working with large surveys or multiple survey sets. The on-device language is currently detected by Survalytics, but there is no current mechanism to localize delivered questions on the basis of this language. This would be straightforward to implement but not a current area of need.</p>
      <p>A major area of development is to port Survalytics to the iOS platform. We initially focused on developing the platform for Android OS as Android devices are profoundly cheaper than iOS devices, allowing researchers to deploy Survalytics at much lower equipment costs. While iOS devices have a higher market share in developed countries, Android continues to maintain parity with iOS globally. Our planned deployment of Survalytics for study of the “Anesthesiologist” app, currently only available for Android, led us to initially focus on the Android OS version of Survalytics. We are also actively exploring development of a cross-platform version of Survalytics using Xamarin.</p>
      <p>Hopefully, contributions in some of these areas will emerge from the open-source user community, although development of tools for the projects we currently have in progress will only serve to further develop the Survalytics package for all users. Exploratory data analysis using the open-source statistical package R [<xref ref-type="bibr" rid="ref40">40</xref>] is straightforward to implement using the jsonlite [<xref ref-type="bibr" rid="ref41">41</xref>] library for import.</p>
      <p>Efforts were made to optimize the end-user experience while maximizing code efficiency, but the user interface, which relies on the basic set of views and components provided by the Android OS, may be improved upon by contributors with experience and expertise in UI. There are almost certainly areas where the codebase could be optimized to reduce resource utilization or increase speed. On the other hand, the code was written explicitly adopting a philosophy in which simplicity of codebase took precedence over bandwidth or storage considerations. Since the module is targeted for use by nonexperts and experts alike, this approach improved the readability of the code. This accessibility should result in a larger number of researchers adopting the package as well as contributing to its further development.</p>
    </sec>
  </body>
  <back>
    <app-group>
      <app id="app1">
        <title>Multimedia Appendix 1</title>
        <p>Amazon Web Services walk-through.</p>
        <media xlink:href="mhealth_v4i2e46_app1.pdf" xlink:title="PDF File (Adobe PDF File), 1MB"/>
      </app>
      <app id="app2">
        <title>Multimedia Appendix 2</title>
        <p>Question formatting and insertion.</p>
        <media xlink:href="mhealth_v4i2e46_app2.pdf" xlink:title="PDF File (Adobe PDF File), 43KB"/>
      </app>
      <app id="app3">
        <title>Multimedia Appendix 3</title>
        <p>Sample questions table.</p>
        <media xlink:href="mhealth_v4i2e46_app3.xlsx" xlink:title="XLSX File (Microsoft Excel File), 57KB"/>
      </app>
      <app id="app4">
        <title>Multimedia Appendix 4</title>
        <p>JSON and database schema.</p>
        <media xlink:href="mhealth_v4i2e46_app4.pdf" xlink:title="PDF File (Adobe PDF File), 66KB"/>
      </app>
      <app id="app5">
        <title>Multimedia Appendix 5</title>
        <p>Detailed Survalytics platform architecture.</p>
        <media xlink:href="mhealth_v4i2e46_app5.png" xlink:title="PNG File, 876KB"/>
      </app>
    </app-group>
    <glossary>
      <title>Abbreviations</title>
      <def-list>
        <def-item>
          <term id="abb1">AWS</term>
          <def>
            <p>Amazon Web Services</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb2">HIPAA</term>
          <def>
            <p>Health Insurance Portability and Accountability Act</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb3">IT</term>
          <def>
            <p>information technology</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb4">JAR</term>
          <def>
            <p>Java Archive</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb5">OS</term>
          <def>
            <p>operating system</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb6">UI</term>
          <def>
            <p>user interface</p>
          </def>
        </def-item>
      </def-list>
    </glossary>
    <ack>
      <p>We would like to thank Jose Pons Vega for contributions during the development of the initial port of the Experience Sampling Program in 2011.</p>
    </ack>
    <fn-group>
      <fn fn-type="conflict">
        <p>None declared.</p>
      </fn>
    </fn-group>
    <ref-list>
      <ref id="ref1">
        <label>1</label>
        <nlm-citation citation-type="web">
          <source>Gartner</source>
          <access-date>2015-11-29</access-date>
          <comment>Gartner Says Annual Smartphone Sales Surpassed Sales of Feature Phones for the First Time in 2013 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.gartner.com/newsroom/id/2665715">http://www.gartner.com/newsroom/id/2665715</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPWAR51k"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref2">
        <label>2</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <collab>Gartner Says Worldwide Traditional PC</collab>
          </person-group>
          <source>Gartner</source>
          <year>2014</year>
          <access-date>2015-11-29</access-date>
          <comment>Gartner Says Worldwide Traditional PC, Tablet, Ultramobile and Mobile Phone Shipments On Pace to Grow 7.6 Percent in 2014 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.gartner.com/newsroom/id/2645115">http://www.gartner.com/newsroom/id/2645115</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPWKQNyD"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref3">
        <label>3</label>
        <nlm-citation citation-type="web">
          <source>Number of apps available in leading app stores 2015 &#124; Statistic Internet</source>
          <access-date>2015-08-19</access-date>
          <comment>Statista 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/">http://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPd06FCB"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref4">
        <label>4</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>O’Reilly-Shah</surname>
              <given-names>V</given-names>
            </name>
          </person-group>
          <article-title>Anesthesiologist: Anesthesia equipment, physiology,dose calculator for Android OS</article-title>
          <source>JMIR mHealth uHealth Internet</source>
          <year>2016</year>
          <comment>forthcoming(forthcoming)</comment>
          <pub-id pub-id-type="doi">10.2196/mhealth.5405</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref5">
        <label>5</label>
        <nlm-citation citation-type="web">
          <source>Mobile Surveys Internet</source>
          <access-date>2015-11-30</access-date>
          <comment>Key Survey 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://www.keysurvey.com/survey-software/mobile-surveys/">https://www.keysurvey.com/survey-software/mobile-surveys/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPgXE5pa"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref6">
        <label>6</label>
        <nlm-citation citation-type="web">
          <source>Looking for an Android Survey App?</source>
          <access-date>2015-08-19</access-date>
          <comment>Harvest Your Data 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://www.harvestyourdata.com/landing/hyd/android-survey-app/">https://www.harvestyourdata.com/landing/hyd/android-survey-app/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPgSrfAU"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref7">
        <label>7</label>
        <nlm-citation citation-type="web">
          <source>Apptentive</source>
          <access-date>2015-11-30</access-date>
          <comment>In-App Feedback Rating Prompts - iOS Android Mac Apps Apptentive Internet 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.apptentive.com/">http://www.apptentive.com/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPgWZvFS"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref8">
        <label>8</label>
        <nlm-citation citation-type="web">
          <source>Quora</source>
          <access-date>2015-11-30</access-date>
          <comment>What is the best in-app survey SDK? 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://www.quora.com/What-is-the-best-in-app-survey-SDK">https://www.quora.com/What-is-the-best-in-app-survey-SDK</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPhUt62Z"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref9">
        <label>9</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Shiffman</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Stone</surname>
              <given-names>AA</given-names>
            </name>
          </person-group>
          <article-title>Introduction to the special section: Ecological momentary assessment in health psychology</article-title>
          <source>Health Psychology</source>
          <year>1998</year>
          <volume>17</volume>
          <issue>1</issue>
          <fpage>3</fpage>
          <lpage>5</lpage>
          <pub-id pub-id-type="doi">10.1037/h0092706</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref10">
        <label>10</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Shiffman</surname>
              <given-names>S</given-names>
            </name>
            <name name-style="western">
              <surname>Stone</surname>
              <given-names>AA</given-names>
            </name>
            <name name-style="western">
              <surname>Hufford</surname>
              <given-names>MR</given-names>
            </name>
          </person-group>
          <article-title>Ecological momentary assessment</article-title>
          <source>Annu Rev Clin Psychol</source>
          <year>2008</year>
          <volume>4</volume>
          <fpage>1</fpage>
          <lpage>32</lpage>
          <pub-id pub-id-type="medline">18509902</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref11">
        <label>11</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Eckhoff</surname>
              <given-names>RP</given-names>
            </name>
            <name name-style="western">
              <surname>Kizakevich</surname>
              <given-names>PN</given-names>
            </name>
            <name name-style="western">
              <surname>Bakalov</surname>
              <given-names>V</given-names>
            </name>
            <name name-style="western">
              <surname>Zhang</surname>
              <given-names>Y</given-names>
            </name>
            <name name-style="western">
              <surname>Bryant</surname>
              <given-names>SP</given-names>
            </name>
            <name name-style="western">
              <surname>Hobbs</surname>
              <given-names>MA</given-names>
            </name>
          </person-group>
          <article-title>A Platform to Build Mobile Health Apps: The Personal Health Intervention Toolkit (PHIT)</article-title>
          <source>JMIR Mhealth Uhealth</source>
          <year>2015</year>
          <month>06</month>
          <volume>3</volume>
          <issue>2</issue>
          <fpage>e46</fpage>
          <pub-id pub-id-type="doi">10.2196/mhealth.4202</pub-id>
          <pub-id pub-id-type="medline">26033047</pub-id>
          <pub-id pub-id-type="pii">v3i2e46</pub-id>
          <pub-id pub-id-type="pmcid">PMC4526892</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref12">
        <label>12</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Barrett</surname>
              <given-names>LF</given-names>
            </name>
            <name name-style="western">
              <surname>Barrett</surname>
              <given-names>DJ</given-names>
            </name>
          </person-group>
          <article-title>An Introduction to Computerized Experience Sampling in Psychology</article-title>
          <source>Social Science Computer Review</source>
          <year>2001</year>
          <month>05</month>
          <day>01</day>
          <volume>19</volume>
          <issue>2</issue>
          <fpage>175</fpage>
          <lpage>85</lpage>
          <comment>
            <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://paperpile.com/b/m3b9sO/Rwaf"/>
          </comment>
          <pub-id pub-id-type="doi">10.1177/089443930101900204</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref13">
        <label>13</label>
        <nlm-citation citation-type="web">
          <source>Quantified Self - Self Knowledge Through Numbers Internet</source>
          <access-date>2015-11-29</access-date>
          <comment>Quantified Self 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://quantifiedself.com/">http://quantifiedself.com/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPdAU6b4"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref14">
        <label>14</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Luciano</surname>
              <given-names>JS</given-names>
            </name>
            <name name-style="western">
              <surname>Cumming</surname>
              <given-names>GP</given-names>
            </name>
            <name name-style="western">
              <surname>Wilkinson</surname>
              <given-names>MD</given-names>
            </name>
            <name name-style="western">
              <surname>Kahana</surname>
              <given-names>E</given-names>
            </name>
          </person-group>
          <article-title>The emergent discipline of health web science</article-title>
          <source>J Med Internet Res</source>
          <year>2013</year>
          <month>08</month>
          <volume>15</volume>
          <issue>8</issue>
          <fpage>e166</fpage>
          <pub-id pub-id-type="doi">10.2196/jmir.2499</pub-id>
          <pub-id pub-id-type="medline">23968998</pub-id>
          <pub-id pub-id-type="pii">v15i8e166</pub-id>
          <pub-id pub-id-type="pmcid">PMC3758025</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref15">
        <label>15</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Loveday</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Sherar</surname>
              <given-names>LB</given-names>
            </name>
            <name name-style="western">
              <surname>Sanders</surname>
              <given-names>JP</given-names>
            </name>
            <name name-style="western">
              <surname>Sanderson</surname>
              <given-names>PW</given-names>
            </name>
            <name name-style="western">
              <surname>Esliger</surname>
              <given-names>DW</given-names>
            </name>
          </person-group>
          <article-title>Technologies That Assess the Location of Physical Activity and Sedentary Behavior: A Systematic Review</article-title>
          <source>J Med Internet Res</source>
          <year>2015</year>
          <month>08</month>
          <volume>17</volume>
          <issue>8</issue>
          <fpage>e192</fpage>
          <pub-id pub-id-type="doi">10.2196/jmir.4761</pub-id>
          <pub-id pub-id-type="medline">26245157</pub-id>
          <pub-id pub-id-type="pii">v17i8e192</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref16">
        <label>16</label>
        <nlm-citation citation-type="web">
          <source>ResearchGate Questions</source>
          <access-date>2015-11-30</access-date>
          <comment>Which software for experience sampling? 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.researchgate.net/post/Which_software_for_experience_sampling">http://www.researchgate.net/post/Which_software_for_experience_sampling</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPh4SQ89"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref17">
        <label>17</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Runyan</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Steenbergh</surname>
              <given-names>T</given-names>
            </name>
            <name name-style="western">
              <surname>Bainbridge</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Daugherty</surname>
              <given-names>DA</given-names>
            </name>
            <name name-style="western">
              <surname>Oke</surname>
              <given-names>L</given-names>
            </name>
            <name name-style="western">
              <surname>Fry</surname>
              <given-names>BN</given-names>
            </name>
          </person-group>
          <article-title>A smartphone ecological momentary assessment/intervention "app" for collecting real-time data and promoting self-awareness</article-title>
          <source>PLoS One</source>
          <year>2013</year>
          <volume>8</volume>
          <issue>8</issue>
          <fpage>e71325</fpage>
          <pub-id pub-id-type="doi">10.1371/journal.pone.0071325</pub-id>
          <pub-id pub-id-type="medline">23977016</pub-id>
          <pub-id pub-id-type="pii">PONE-D-13-14297</pub-id>
          <pub-id pub-id-type="pmcid">PMC3743745</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref18">
        <label>18</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Conner</surname>
              <given-names>T</given-names>
            </name>
          </person-group>
          <source>University of Otago</source>
          <year>2015</year>
          <access-date>2016-01-06</access-date>
          <comment>Experience sampling and ecological momentary assessment with mobile phones 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.otago.ac.nz/psychology/otago047475.pdf">http://www.otago.ac.nz/psychology/otago047475.pdf</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6eLFaKEiF"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref19">
        <label>19</label>
        <nlm-citation citation-type="web">
          <source>SurveySignal</source>
          <access-date>2016-01-07</access-date>
          <comment>
            <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.surveysignal.com/">http://www.surveysignal.com/</ext-link>
            <ext-link ext-link-type="webcite" xlink:href="6eMOxK50P"/>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref20">
        <label>20</label>
        <nlm-citation citation-type="web">
          <source>CS diario</source>
          <access-date>2016-01-07</access-date>
          <comment>CS diario - we take your research to the net 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://www.cloud-solutions.net/en/for-scientists/cs-diario">https://www.cloud-solutions.net/en/for-scientists/cs-diario</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6eMP0t4rg"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref21">
        <label>21</label>
        <nlm-citation citation-type="web">
          <source>LifeData</source>
          <access-date>2016-01-07</access-date>
          <comment>
            <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://www.lifedatacorp.com/">https://www.lifedatacorp.com/</ext-link>
            <ext-link ext-link-type="webcite" xlink:href="6eMP3xHUV"/>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref22">
        <label>22</label>
        <nlm-citation citation-type="web">
          <source>mEMA by ilumivu</source>
          <access-date>2016-01-07</access-date>
          <comment>
            <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://mobileema.com/">http://mobileema.com/</ext-link>
            <ext-link ext-link-type="webcite" xlink:href="6eMP8HX1X"/>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref23">
        <label>23</label>
        <nlm-citation citation-type="web">
          <source>IFormBuilder</source>
          <access-date>2016-01-07</access-date>
          <comment>
            <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://www.iformbuilder.com/">https://www.iformbuilder.com/</ext-link>
            <ext-link ext-link-type="webcite" xlink:href="6gKp9Bfo3"/>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref24">
        <label>24</label>
        <nlm-citation citation-type="web">
          <source>movisensXS</source>
          <access-date>2015-11-30</access-date>
          <comment>movisensXS - Pricing Internet 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://xs.movisens.com/pricing">https://xs.movisens.com/pricing</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPh3n8OD"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref25">
        <label>25</label>
        <nlm-citation citation-type="web">
          <source>HarvestYourData</source>
          <access-date>2016-01-07</access-date>
          <comment>
            <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://www.harvestyourdata.com/">https://www.harvestyourdata.com/</ext-link>
            <ext-link ext-link-type="webcite" xlink:href="6eMPEynMB"/>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref26">
        <label>26</label>
        <nlm-citation citation-type="web">
          <source>Paco</source>
          <access-date>2016-01-07</access-date>
          <comment>Paco Github 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://github.com/google/paco">https://github.com/google/paco</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6eMPzkqB2"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref27">
        <label>27</label>
        <nlm-citation citation-type="web">
          <source>Emotion Sense</source>
          <access-date>2016-03-27</access-date>
          <comment>
            <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://emotionsense.org/index.html">http://emotionsense.org/index.html</ext-link>
            <ext-link ext-link-type="webcite" xlink:href="6gKpO9x7Q"/>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref28">
        <label>28</label>
        <nlm-citation citation-type="web">
          <source>AWARE Framework</source>
          <access-date>2016-01-07</access-date>
          <comment>AWARE Android Mobile Context Instrumentation Framework 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.awareframework.com/">http://www.awareframework.com/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6eMOglOAy"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref29">
        <label>29</label>
        <nlm-citation citation-type="web">
          <source>funf</source>
          <access-date>2016-01-07</access-date>
          <comment>funf Open Sensing Framework 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://funf.org/">http://funf.org/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6eMOmm3xy"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref30">
        <label>30</label>
        <nlm-citation citation-type="web">
          <source>CBITs TECH Web Site</source>
          <access-date>2016-01-07</access-date>
          <comment>Purple Robot 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://tech.cbits.northwestern.edu/purple-robot/">https://tech.cbits.northwestern.edu/purple-robot/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6eMPIw5wU"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref31">
        <label>31</label>
        <nlm-citation citation-type="web">
          <source>Amazon Web Services, Inc</source>
          <access-date>2015-11-30</access-date>
          <comment>AWS Free Tier &#124; Try Amazon Cloud Services, Free Internet 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://aws.amazon.com/free/">http://aws.amazon.com/free/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPgCvuFK"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref32">
        <label>32</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>O’Reilly-Shah</surname>
              <given-names>V</given-names>
            </name>
            <name name-style="western">
              <surname>Mackey</surname>
              <given-names>S</given-names>
            </name>
          </person-group>
          <source>ResearchGate</source>
          <year>2011</year>
          <access-date>2016-03-28</access-date>
          <comment>Experience Sampling in the Android OS 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://www.researchgate.net/publication/281108273_Experience_Sampling_in_the_Android_OS">https://www.researchgate.net/publication/281108273_Experience_Sampling_in_the_Android_OS</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6gLWFt2zo"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref33">
        <label>33</label>
        <nlm-citation citation-type="web">
          <source>Stack Overflow</source>
          <access-date>2015-11-30</access-date>
          <comment>AWS DynamoDB on Android: Inserting JSON Directly? 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://stackoverflow.com/questions/31813868/aws-dynamodb-on-android-inserting-json-directly">http://stackoverflow.com/questions/31813868/aws-dynamodb-on-android-inserting-json-directly</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPgOWiQV"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref34">
        <label>34</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <collab>im292fresh</collab>
          </person-group>
          <source>Instructables</source>
          <access-date>2015-11-30</access-date>
          <comment>How To Setup Eclipse for Android App Development Internet 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.instructables.com/id/How-To-Setup-Eclipse-for-Android-App-Development/?ALLSTEPS">http://www.instructables.com/id/How-To-Setup-Eclipse-for-Android-App-Development/?ALLSTEPS</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPhKwrZB"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref35">
        <label>35</label>
        <nlm-citation citation-type="web">
          <source>Android Developers</source>
          <access-date>2015-11-30</access-date>
          <comment>Installing the Android SDK 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://developer.android.com/sdk/installing/index.html?pkg=studio">https://developer.android.com/sdk/installing/index.html?pkg=studio</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPhWS1jB"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref36">
        <label>36</label>
        <nlm-citation citation-type="web">
          <source>Eclipse Foundation</source>
          <access-date>2015-11-30</access-date>
          <comment>Mars Eclipse 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://eclipse.org/">https://eclipse.org/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPh3cBxw"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref37">
        <label>37</label>
        <nlm-citation citation-type="web">
          <source>Android Developers</source>
          <access-date>2015-09-23</access-date>
          <comment>Android Studio Overview 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://developer.android.com/tools/studio/index.html">http://developer.android.com/tools/studio/index.html</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPh463ib"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref38">
        <label>38</label>
        <nlm-citation citation-type="web">
          <source>Amazon Web Services, Inc</source>
          <access-date>2015-11-30</access-date>
          <comment>AWS &#124; Mobile SDK - Mobile App Development Tools Internet 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://aws.amazon.com/mobile/sdk/">https://aws.amazon.com/mobile/sdk/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6dPhVdxfO"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref39">
        <label>39</label>
        <nlm-citation citation-type="web">
          <source>Amazon Web Services, Inc</source>
          <access-date>2016-03-27</access-date>
          <comment>HIPAA Compliance - Amazon Web Services (AWS) Internet 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://aws.amazon.com/compliance/hipaa-compliance/">https://aws.amazon.com/compliance/hipaa-compliance/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6gKpwL5g0"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref40">
        <label>40</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <collab>R Core Team</collab>
          </person-group>
          <source>R: A language and environment for statistical computing Internet</source>
          <year>2015</year>
          <access-date>2016-03-27</access-date>
          <publisher-loc>Vienna, Austria</publisher-loc>
          <publisher-name>R Foundation for Statistical Computing</publisher-name>
          <comment>R-Project 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.r-project.org/">http://www.r-project.org/</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6gKq3XKBi"/></comment>
        </nlm-citation>
      </ref>
      <ref id="ref41">
        <label>41</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Ooms</surname>
              <given-names>J</given-names>
            </name>
          </person-group>
          <source>arXiv stat CO</source>
          <access-date>2016-03-27</access-date>
          <comment>The jsonlite Package: A Practical and Consistent Mapping Between JSON Data and R Objects Internet 
          <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://arxiv.org/abs/1403.2805">http://arxiv.org/abs/1403.2805</ext-link>
          <ext-link ext-link-type="webcite" xlink:href="6gKq6S5aZ"/></comment>
        </nlm-citation>
      </ref>
    </ref-list>
  </back>
</article>
