What would you like to see in Collect developer documentation?

I am sharing some questions here that I want think would be useful if they are included in Collect documentation.
Please share your answers and suggestions here. It would be very helpful. Also, please add questions that makes Collect different from other apps and things a contributors should know before starting contribution.

  • How is form rendered to user and what part of Collect code is responsible for it?
  • How are settings implemented?
  • What database is used for storage purpose and the schemas?
  • How form savepoints are captured and managed?
  • What is role of widgets?
  • How form definitions are cached?
  • What is use of dao directory in org.odk.collect.android package ?
  • What is use of /application/Collect class in org.odk.collect.android package?
  • What part of code is used to handle repeats?
3 Likes

Here is a sample :
How is form downloaded from server?

Forms can be downloaded from FormDownloadList activity.
List of forms available on server is downloaded using DownloadFormListTask populated in datastructure of the type HashMap<String, FormDetails>. Once download is complete, formListDownloadingComplete() method implemented in FormDownloadList is executed and SimpleAdapter is updated to show it to user.
User selects the forms to download. On Click of Get Forms button, selected froms are downloaded using DownloadFormsTask class.
For each form following steps are carried out:
1.downloadXform() method is called which creates a File object to store form and calls downloadFile() method.
2. downloadFile() method sends HTTP request to server and opens stream to read the data from server. The recieved data (form) is stored in the temporary File object. Once form is completely downloaded, the content is copied to File object provided by downloadXform() method and temporary File object is cleared.
3. formsDownloadingComplete() updates the progress bar.

Note: All the networking tasks are executed in background using AynscTask.

Hi @Akshay_Patel I have had the same issue. However you can generate java docs from android studio. Also checkout the contribute file on github