Version 45 (modified by 14 years ago) ( diff ) | ,
---|
Table of Contents
Blueprint for Mobile Clients
We want clients on Mobile devices to be able to talk to Sahana Eden servers.
The simplest way to do this is to provide a layout for the web application suitable for smaller screens: BluePrintCSS
Ideally, though, they should have local storage for use completely offline & then be able to sync back to the server using whatever connectivity becomes available:
- SMS
- compressed multi-part SMS to get maximal throughput
- BluePrintMessagingModule
- forms should be updatable via SMS
- photos should stay offline until the phone has better connectivity, but then the photo needs to be used to update the same record
- GPRS/3G
- WiFi
- BlueTooth
- J2ME eedocs:
- tbc
- Python docs:
- J2ME eedocs:
Using the open XForms standard means that we can support handsets using both Android & J2ME.
XForms editor:
- Written in Django, so should be easy to port to Sahana Eden:
- Written in GWT, so includable in Eden as a simple HTML page:
- PurcForms - can import the output from our controller, powerful but not for non-techies!
- OX-Designer - more basic, but pretty. No import yet. Built for OpenMRS (which uses ODK)
- Written in Ruby Rack, so harder to integrate as-is:
XForms can be submitted using SMS by including the encoding format within the XForm so that client & server agree on the encoding:
Android
OpenDataKit have a suite of tools to use on Android.
- UserGuidelinesMobile - how to use ODK Collect with Sahana Eden
- Android Development Environment
- OpenRosa - joint project between ODK & JavaRosa
ToDo
- Get the jaxdroid work on Sahana compatibility merged into ODK Trunk
- Send Images
- Use ODK Collect to acquire photographic data through a form on the mobile client
- Store images on the mobile device until a connection can be made to the server
- Provide an interface in Sahana through which users can access ODK Collect to upload photos
- Handle image storage on the server side when a user uploads a photo
- See Sahana Eden Mobile Photo Upload Blueprint for additional information.
- Send GPS Coordinates
- GeoTagger is a sample Form for ODK which can be used as a template for what needs to be produced by
controllers/xforms.py
from location_id & image_id fields.- We also need
controllers/xforms.py
to be able to parse the form back. - Currently the ODK Collect client seems to only be able to use GPS for location rather than a wireless fix, which could use fixing (Sahana's Location should have the lower accuracy marker: either source or ce fields).
- We also need
- GeoTagger is a sample Form for ODK which can be used as a template for what needs to be produced by
- Support Component Tabs for a multi-table form
- SMS: There are 2 APIs for sending SMS. 1 of which automatically splits up larger messages into multi-part SMS.
- NCSU have produced some initial ODK Collect code for SMS.
This currently sends an SMS whenever an HTTP transmission attempt fails- Still need prompt if the HTTP submission fails.
- Need some way to verify that a whole form submission was successful (esp. for multi-part SMS).
- Need to delete the submitted form from the mobile device when it the submission was confirmed successful.
- The current multi-part transmission uses a very proprietary sequence number and unique id system that looks like this:
- (1/3)(12345)
- ...
- (3/3)(12345)
- Want to be able to download Forms via SMS
- Push updates from server
- Pull requests from client
- Need to compress the forms
- NCSU have produced some initial ODK Collect code for SMS.
- QR Code to download the Trunk version (which should update from this version & not default ODK location)
- UserGuidelines on creating/embedding a custom QR code for a deployment-specific version
- Have the list of downloadable XForms more easily configurable (currently hardcoded in controllers/xforms.py formList())
- e.g. Use the same approach as Importer does by marking resources in the modules list in 000_config.py
J2ME
Documentation on the current implementation is here: http://wiki.sahanafoundation.org/phase2/doku.php/dev:j2meclient
- This needs updating to the latest version of JavaRosa
JavaRosa is a fast-developing framework which uses XForms & J2MEPolish:
This supports using Mesh4j to do synchronisation via SMS:
Alternatives
Another XForms/J2MEPolish client (Xfolite):
KUIX can be used to develop lightweight applications which work across may handhelds & forms can be customised easily via XML/CSS:
Old, un-maintained J2ME client for the PHP back-end, which just uses XML-RPC (=> requires Internet):
iPhone
Sahana Software Foundation have a developer license which can be used by anyone interested in developing this.
HTML 5
jQuery Mobile
This has a lot of industry backing for a truly cross-platform solution:
Sencha Touch
Cross-platform (Android/iPhone) HTML5 environment based on ExtJS
Mapping
Adding touch support to OpenLayers:
- http://mobilegeo.wordpress.com/2010/01/05/testing-open-layers-with-iphone-and-android/
- http://dev.openlayers.org/sandbox/bjornharrtell/swipe/examples/swipe.html
ExtMap Touch:
Taking the Map offline:
- iPhone: http://www.offmaps.com
OpenStreetMap on Android:
Other projects
- FrontlineSMS
FrontlineForms is a proprietary add-on for FrontlineSMS allowing a mobile Java client to connect to FrontlineSMS and share data with it.
- Global Relief Technologies