Integrating ODK Collect

Hi All,

I'm evaluating the integration of ODK Collect into an application for land tenure data collection.
The idea is that of including an XForms form as a flexible part of collected data and to use FormEntryActivity to view/edit form data.
The two options I see are:

  • installing ODK Collect as a separate application and launch the appropriate intent for the desired action

Pros: simplified maintenance
minimal impact on the rest of the project
Cons: inconsistent theming between ODK Collect and the rest of the application
unwanted, and possibly dangerous, functions (e.g. form delete from within ODK Collect)

  • extract FormEntryActivity related code and embed it into the application

Pros: perfect integration and consistent theming
only desired functions available
Cons: cumbersome porting of new versions/improvements in ODK collect

  • create a customized version of ODK Collect with desired theming and only desired functionality, install it and launch the desired intent from the application

Pros: perfect integration and consistent theming
only desired functions available
Cons: cumbersome porting of new versions/improvements in ODK collect (probably with less impact on the original application code base, compared to the previous option)

Can you add more pros/cons to the above options? Would you suggest one of the above or a completely different one?

Thank you and regards.
Antonio.

BTW

While playing with ODK Collect, I completed the italian translation (attached). Can this be merged into ODK?

strings.xml (22.1 KB)

You can launch ODK Collect into a specific form, and even into a specific
instance of that form.

If you do this, then the user will never see the initial screen of ODK
Collect -- it would open into the logo/name screen of the form. The user
would need to click on the ODK Collect app itself to get to these dangerous
functions.

You can see an example of this by creating an ODK Collect widget for a
specific form -- set up ODK Collect with one or more forms, then go to the
widgets (4.x) tab of the installed applications (or drag and drop to create
a shortcut (2.x)), find the ODK Collect icon and drag it to your home
screen. You will be asked to choose a specific form. Choose one. Then try
launching ODK Collect with that shortcut (a data URI on the intent
specifies the form to open). Notice that you never see the initial screen
of the app -- just the form.

So I think the first option is not as awkward as you might think.

Since the forms and instances can be manipulated via content providers,
your app can even dynamically create forms, register them with ODK Collect,
create preloaded instances, register them with ODK Collect, and then launch
ODK Collect on that instance, or that form (to create a new empty
instance). ODK Tables does this using the logic here:
http://code.google.com/p/opendatakit/source/browse/src/org/opendatakit/tables/utils/CollectUtil.java?repo=tables

ยทยทยท On Wed, May 28, 2014 at 5:59 AM, wrote:

Hi All,

I'm evaluating the integration of ODK Collect into an application for land
tenure data collection.
The idea is that of including an XForms form as a flexible part of
collected data and to use FormEntryActivity to view/edit form data.
The two options I see are:

  • installing ODK Collect as a separate application and launch the
    appropriate intent for the desired action

Pros: simplified maintenance
minimal impact on the rest of the project
Cons: inconsistent theming between ODK Collect and the rest of the
application
unwanted, and possibly dangerous, functions (e.g. form delete from
within ODK Collect)

  • extract FormEntryActivity related code and embed it into the application

Pros: perfect integration and consistent theming
only desired functions available
Cons: cumbersome porting of new versions/improvements in ODK collect

  • create a customized version of ODK Collect with desired theming and only
    desired functionality, install it and launch the desired intent from the
    application

Pros: perfect integration and consistent theming
only desired functions available
Cons: cumbersome porting of new versions/improvements in ODK collect
(probably with less impact on the original application code base, compared
to the previous option)

Can you add more pros/cons to the above options? Would you suggest one of
the above or a completely different one?

Thank you and regards.
Antonio.

BTW

While playing with ODK Collect, I completed the italian translation
(attached). Can this be merged into ODK?

--
You received this message because you are subscribed to the Google Groups
"ODK Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
Mitch Sundt
Software Engineer
University of Washington
mitchellsundt@gmail.com