That's great @arqaam! I looked at child-protection apps available and there's this app that could limit the user into using certain apps only. Really cool! That should help maximize battery power.
I have to agree on the testing part. Super heavy testing needs to be done before pushing a finalized e-form. Even though it can be exhaustingly boring but it has to be done. Publishing an e-form with a bug is so painful for everybody -- from end-users to people handling the back-end servers and database -- when dealing with regular expressions, etc.
Anyways, I forgot to put the obligatory example. So, here it is...
What really worked for us is the use of barcodes and barcode readers to easily identify things uniquely. We setup barcodes on the farm fields, and when we get to the fields, all we have to do is to fire up the ODK collect and scan the barcode. Now on the development of the form, this can be easily setup in XLSForm by setting
barcode as the question type.
By the way, I am a back-end database person. What we learned the hard-way is that... e-form development has to be planned carefully. As much as possible:
DO NOT USE NESTED FIELD GROUPINGS as this result to possible wrong-spelled database table field names
Example: Group Acme > Group Capsule > Your Field Name becomes
GRP_ACM_GROUP_CPSLE_YOUR_FLD_NAME in the database table field name. I don't know why it is happening.
DO NOT USE LONG NAMES FOR GROUPS AND FIELDS because long ones may also result to possible wrong-spelled database table field names
DO NOT USE LONG FORM NAMES because long ones may also result to possible wrong-spelled database table names
Example: My epic very long name form name becomes
MY_EPC_VRY_LONG_NME_FORM_NAME_CORE in the database table name. I also don't know why it is happening.
In e-form development, make the e-form as minimal media upload as possible (
video) as they are heavy data for end-users that are on mobile. Images and video are also very heavy by default if the device's camera has a high default resolution.
In e-form development, be wary that e-form fields that have
select_multiple create a new database table rather than a table field attached to the core table.
I hope some people would find it as a handy guide.