This ILWIS Mobile project is one of the Google Summer of Code projects hosted by 52°North. The project was introduced in an introductory blog. In this blog I will give a little update. I spent the first month following courses for my studies and got acquainted with the tools (Qt with QML/Java Script and C++) and the project. In the second part of the project (July and August), I will carry out the actual realization, which will culminate in the Gatherer app. I will elaborate on both.
ILWIS objects is written in C++, so the mobile app will also be written in C++. A good IDE for C++ development is Qt Creator, but the main advantage of Qt is the possibility to use QML for the graphical user interface. QML can be extended with Java Script both inline and via included .js files. For the interaction with the ILWIS framework, it is also possible to register C++ classes via a Q_Object and various macros to the QML, where the ILWIS classes can be used in the app. This combination of possibilities makes the Qt creator a good choice for this project. Some results of my work on QML can be found on my GitHub. Below is an example of some functionalities implemented with QML. The phone accelerometer is used to let a ball roll. The color ‘buttons’ in the lower left corner switch the app’s background color. The several additional buttons could be used for this project. Interactivity is easy to implement this way.
The figure below shows the C++ / QML combination – the core of the app. It is the part of the overall framework explained in the introductory blog. I have started work on this and will develop it into useful code in the coming period.
In addition to focusing on the code, I also gained inspirations from other existing apps. The collector app from ESRI is an example. I had the opportunity to test this app at the ESRI office. The app does almost the same thing as the Gatherer will do, but it is based on the ArcGIS framework, which requires an (expensive) licence. ODK collect is an interesting example, a free and open source solution. The template idea is very well integrated in this app, but it has not the possibility to spatially visualize your data in the app. Another example, which has the option to visualize the observation on a (Google) map is the Ushahidi app.
This project will result in the Gatherer app. The app will be built around three main functions: template selection, observation recording and the observation upload. The selection of a template will be primarily from locally saved templates. These can be downloaded from an external server and changed according to project. The recording of an observation will be based on location (by gps or filled in) and will need some thematic data depending on the template. The observation will be stored locally and can then be uploaded to an external database.