= Blueprint for Mobile Clients = We want clients on Mobile devices to be able to talk to Sahana Eden servers. 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: * Intro: http://www.devshed.com/c/a/Python/Bluetooth-Programming-using-Python/ * http://lightblue.sourceforge.net/ * http://code.google.com/p/pybluez/ 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: * http://github.com/nyaruka/rapidsms-xforms-builder * Video walk-through: * http://www.screencast.com/t/YmYwYjUzMz * http://www.youtube.com/watch?v=PyjEruT5uoU * Written in GWT, so includable in Eden as a simple HTML page: * [http://code.google.com/p/purcforms/ PurcForms] - can import the output from our controller, powerful but not for non-techies! * [http://design.openxdata.org Demo] * [http://ox-designer.blogspot.com OX-Designer] - more basic, but pretty. No import yet. Built for OpenMRS (which uses ODK) XForms can be submitted using SMS by including the encoding format within the XForm so that client & server agree on the encoding: * http://bitbucket.org/javarosa/javarosa/wiki/SMSSendingAPI == Android == [http://code.google.com/p/open-data-kit OpenDataKit] have a suite of tools to use on Android. * UserGuidelinesMobile - how to use ODK Collect with Sahana Eden * [MobileAndroid Android Development Environment] * [http://bitbucket.org/javarosa/javarosa/wiki/OpenRosaAPI OpenRosa] - joint project between ODK & !JavaRosa There are 2 APIs for sending SMS. 1 of which automatically splits up larger messages into multi-part 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 [wiki:XForms] & [http://www.j2mepolish.org/ J2MEPolish]: * http://code.javarosa.org This supports using Mesh4j to do synchronisation via SMS: * http://code.google.com/p/mesh4x/wiki/SMSAdapter === Alternatives === KUIX can be used to develop lightweight applications which work across may handhelds & forms can be customised easily via XML/CSS: * http://www.kalmeo.org/projects/kuix Old, un-maintained J2ME client for the PHP back-end, which just uses XML-RPC (=> requires Internet): * http://wiki.sahanafoundation.org/doku.php?id=dev:sahana_mobile_intro == iPhone == Sahana Software Foundation have a developer license which can be used by anyone interested in developing this. == Mapping == Adding touch support to OpenLayers: * http://mobilegeo.wordpress.com/2010/01/05/testing-open-layers-with-iphone-and-android/ Taking the Map offline: * iPhone: http://www.offmaps.com == Other projects == * [http://frontlinesms.ning.com/profiles/blog/show?id=2052630%3ABlogPost%3A8449 FrontlineSMS] * {{{FrontlineForms is a proprietary add-on for FrontlineSMS allowing a mobile Java client to connect to FrontlineSMS and share data with it.}}} * [http://grt.com Global Relief Technologies] ---- BluePrintMessagingModule BluePrints