Apple Enterprise Developer Program
If you are interested in distributing iOS apps, we highly recommend that you enroll in the
iOS Enterprise Developer Program
($299 USD/year).This program allows you to develop and distribute in-house iOS apps, which is great because...
it circumvents App Store approval, decreasing the lag time between development and distribution
it allows you to control who can download the app
Furthermore, during the year-long membership, there are no limits on the number of devices to which the app can be distributed and the number of apps that can be distributed. That means you can run multiple studies with multiple apps with an unlimited number of participants!
This membership can also be shared with a team of researchers (i.e., each researcher can have their own developer account with access to a shared Enterprise Developer Program to create the necessary development and distribution certificates). We refer you to the Enterprise Program Documentation for more information about the various roles on a development team.
Finally, the Enterprise program allows apps to be distributed wirelessly.
These features are not available with the iOS Developer Program. Furthermore, the iOS Developer Program limits distribution to 100 devices and requires apps to be loaded onto devices using a USB cable after obtaining the device's UDID number, which makes distribution more cumbersome.
Though the Apple Enterprise Developer website states that researchers must have a D-U-N-S number to apply, we have been able to obtain one without a D-U-N-S number by speaking directly to a representative at the Apple Developer program and explaining that we were a research lab at a public institution looking to create an app to be distributed for research purposes.
If you are at a private institution, you will need to obtain the D-U-N-S number for your institution. Apple may initially reject this D-U-N-S number during the automatic verification, but the rejection notice will contain contact information for an Apple representative who can override it. After this step, you will need to provide Apple with contact information for an individual who can confirm that you are affiliated with your institution. This person can be a member of the administrative staff.
You will need to install Cordova. Learn how to install Cordova here. We recommend that you use the Command Line Interface (CLI) to create your apps rather than installing the Cordova Shell Tools because CLI requires less set up.
Xcode for iOS Apps
Xcode can only be run on Intel-Macs using more recent operating systems (refer to the most recent iOS documentation for Cordova for information about the minimum version required). You must first download Xcode from the App Store. If you have already registered as an Apple Developer, you can also download the app from Apple Developer Downloads (login here).
The Android SDK is the software that is needed to create apps for Android devices. The Android SDK can be run on both PCs and Macs , and it can be downloaded from the Android Developer website (http://developer.android.com/sdk/installing/index.html#Other). You do not need to download Android Studio. In fact, we recommend that you do not download Android Studio. The documentation regarding the integration of Cordova and Android Studio is currently lacking.
Genymotion is an Android emulator that loads much faster than the default Android SDK emulator. It also allows you to emulate various devices (e.g., various Samsung models, Google Nexus, HTC devices, etc.) and various versions of the Android OS. This reflects the heterogeneity that exists among Android users and allows researchers to test whether the app functions correctly across all models and OS versions. To install Genymotion, simply create an account at http://www.genymotion.com, and then download the free version of Genymotion emulator.
To test your iOS app, you will need to access the developer extensions available in your Safari browser. To enable the developer extentions, go to the Safari menu and then Preferences. At the bottom of the menu that appears, check the statement “Show Develop menu in menu bar.”
To test your Android app, you will need to use the developer tools in the Google Chrome browser.
You will also need a Google account. We used a number of Google’s free services to make data storage and organization more manageable. We have designed ExperienceSampler to upload data to a Google Spreadsheet as it comes in, and we wrote supporting scripts that check participant compliance and send reminder emails using Google Script. If you who want to take advantage of these features, you should sign up for a Google account specifically for your experience sampling study. If you choose not to use the Google Script method of data storage, then there is no need to sign up for a Google Account.
You will need to set up a server to collect the data that is being collected. You can either set up a computer to manually host the data that is being sent, or they can pay for an externally-hosted server. We used NearlyFreeSpeech.net to host our data collection server. To upload the server side data collector script, you can use a program like Cyberduck to simplify the upload and download process.