Version 29 (modified by 14 years ago) ( diff ) | ,
---|
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
- wiki:BluePrintMessagingModule#Micro-Syntax
- 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
- 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
- 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 along with every HTTP submission of the GeoTagger form...this needs generalising to all forms & the SMS should only be sent after a prompt if the HTTP submission fails.
- NCSU have produced some initial ODK Collect code for SMS.
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
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
Taking the Map offline:
- iPhone: http://www.offmaps.com
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