In developing the WQReporter application, the Spatial Data Management group leveraged and contributed to an existing open source project.JavaRosa, a project of the OpenRosa Consortium, is a J2ME implementation of a mobile data collection application based on the Xforms standard.
JavaRosa is highly modular, allowing different implementations to choose only the subset of functionality needed. This is crucial in the limited mobile environment. The architecture also separates the content of the form (which specifies the questions being asked) from the application.
This means that the form can be changed and updated even without recompiling the application. Other important features of JavaRosa include support for internationalisation and persistent storage of completed forms. JavaRosa enables GPRS to be used for data transfer rather than SMS, which means costs would be greatly reduced at scale. While one SMS costs between R0.30 and R0.85 cents, a form sent over GPRS typically costs one or two cents.
This approach has several immediate advantages, including reuse of existing code, support and knowledge sharing in a developer community and standards-compliant development. In the longer term, we also believe that standards compliance is the best way to ensure flexibility at component level, enabling other groups to recombine components to fit their needs.
The Water Quality Reporter Application was designed to run on most 'feature phones' - the largest group of available programmable phones, including all but the most basic models. System requirements are:
Java Mobile Edition (J2ME),
MIDP 2.0 CLDC 1.1,
1Mb maximum jar size and
minimum 2MB heap.
The test phone for this profile, and one of the phones we commonly use in the field, is the Nokia 2700 Classic (previously, the Nokia 3110 Classic).