My team of engineers created an Android app that integrates with ODK Collect, using intents to instantiate a Form, as well as Xform intents to retrieve data from our app. This approach has worked well for us for over 18 months.
We are in the process of re-writing our app (new business requirements), and are considering building a PWA. Our business folks would like a more "device agnostic" version of our app, where users could see our data outcomes on various platforms and devices (e.g. Android tablet, Android phone, web browser). Since we need to be able to render and submit existing ODK forms, we are considering this approach:
- PWA user clicks on a button to launch an ODK form within a browser.
- PWA creates a one-time use Public Access Link (PAL), and renders the form via the link within the PWA.
- Once the PAL's form is submitted, revoke access to the PAL (hopefully limiting nefarious or duplicate submissions).
Some thoughts:
- This works online. How do we / can we do this offline? Enketo references offline capabilities, but how?? We would like to consider ODK Web Forms (the wave of the future ), but offline capabilities are way down on the roadmap.
- If we incorporated ODK Central APIs, how could we mitigate offline experiences?
- What other approaches to multi-platform, offline-capable would others recommend?
Thanks for any and all suggestions.