Launching the Application DesignerΒΆ

The ODK-X Application Designer is both

  1. a workspace containing the cohesive interacting set of forms and files you have created and

  2. a set of tools used for that development.


We recommend unzipping and creating a new Application Designer directory for each new set of ODK-X Survey forms, ODK-X Scan forms, and ODK-X Tables files that are not intended to be deployed as a cohesive unit. If you need to have several of these sets of forms and files co-resident on the same Android device, you would create different application names for each set. The standard set up uses the default application name (appropriately entitled default). To create a new application name, create a folder with that name next to your default app and make sure it is stored on the device in the opendatakit folder. The underlying ODK-X tools will then keep each of these sets of forms and files isolated from each other.

To launch the application designer, open the cmd shortcut or Terminal window onto the directory containing Gruntfile.js (the unzipped ODK-X Application Designer directory) and type:

$ grunt

This should automatically open Chrome and display the Preview tab. When you need to stop the server, return to the cmd or terminal window where you typed the grunt command and press Ctrl+c. This will stop the process.


If you have Parallels or other virtualization software running, it might try to open Chrome in this system by default. If so, you should still be able to navigate to http://localhost:8000/index.html.


If the Chrome browser does not open, try opening it yourself and browsing to http://localhost:8000/index.html.


If the page never times-out, but never loads (it remains blank or constantly spinning), then stop grunt and try this command instead:

$ grunt --verbose connect:livereload:keepalive

This will start grunt, but disable the file-change detection mechanisms that automatically reload an HTML page when it or any JavaScript file it uses has been modified. Others have reported that uninstalling npm and node, and then re-installing them may correct the issue.