Enketo Open-Source Developer Community taking off
Enketo Open-Source Developer Community taking off
A significant external contribution to Enketo is underway by ThoughtWorks’ Bangalore office in India. In collaboration with the Sustainable Engineering Lab (formerly known as Modi Labs), Thoughtworks handled much of the development for an Android app that includes forms powered by Enketo. They are now contributing to the Enketo form engine by embarking on a project to develop a much faster replacement of Enketo’s XPath Evaluator. When this fork (of a project by Google) is complete, form logic evaluation will become much less of a performance hog. Complex forms with advanced skip logic and validation will load and run significantly faster!
This is a very encouraging milestone for Enketo and hopefully signals the (re)start of an active open-source developer community around it. To further encourage this we have made it much easier to start working on Enketo by splitting the fairly large codebase up into several repositories.
The key repository is Enketo Core and includes everything required to parse an Enketo form, evaluate its logic and make it look awesome. The idea is that by making it easy to use as a building block (as a git submodule which is easy to keep up-to-date) to develop an enketo-powered app, we will automatically start receiving contributions from other developers. At the moment the before-mentioned Android app, enketo.org and formhub.org are all built around Enketo Core. Several other organizations have expressed interest in developing new apps using it. I personally, would love to develop a Node.js app around Enketo Core (one that doesn’t use subdomains for each form - I am looking for a client with a similar goal to fund this).
In the next months, you can expect Enketo Core to become modernized, get proper documentation and become generally awesome for developers (like our API documentation). Widgets will become easily extensible. There is still a way to go but it will happen! Curious developers can check out the master branch to see where it is headed. Enter the developer forum or create an issue on GitHub if you have ideas, would like to discuss contributions or make comments related to Enketo Core (or the libraries it depends on).