-
Notifications
You must be signed in to change notification settings - Fork 2
Design Decisions
The purpose of this wiki page is to identify major design decisions that have been made for the V-Tracker project. Design decisions are broken down into Software and Hardware decisions as outlined on this page.
It is a project requirement that the software be developed in a form that allows it to be deployed on multiple mobile operating systems, namely: iOS 5.0+ and Android 4.0+. As a result, there can be no strict hardware requirements for this project. In future development, the project may incorporate additional hardware accessories that provide higher accuracy motion sensing and/or user-interfacing hardware that can enhance the user experience.
An Apple iPhone 4 has been selected as a mobile device for use in prototype development. An Asus Nexus 7 and an HTC Desire have also been used to demonstrate the software's versatility across different devices.
It was decided that the application would attempt to collect and store information from the device's motion sensors (accelerometer and gyroscope) and localisation sensors (compass and GPS).
More information relating to these sensors can be found in the page dedicated to Hardware.
It was decided that the application would be executed entirely inside the web-browser for this stage of the research. This implies that all necessary computation was to be performed locally using the web-browser's JavaScript engine. Furthermore, all data was to be stored locally using web-interfaces made available in HTML5. The primary benefit of this decision was the application's ability to run independent of a server and more importantly, without the need for persistent Internet or network connectivity. The obvious constraint presented here is the limited realtime computational power available to the web-browser's DOM. It is anticipated that future projects will explore the benefits of distributed computing and possibly offload the computation and storage to a dedicated server.
HTML5 standards propose two primary forms of data storage: local key/value storage (localstorage/sessionstorage) and local database storage (SQLite3) [5]. According to the W3C, the SQLite3 standards are no longer being maintained and as a result local key/value storage was chosen as the primary form of data storage for V-Tracker. Nonetheless, in order to satisfy the requirement relating to easy data export for further data analysis, the SQLite web-interfaces were used to enable users to create a SQLite3 database file that could be downloaded from the device. The database can provide comma-separated tables that can be imported into mathematical packages.
Google serve an open API for accessing their maps platform. Given its power and well-established developer community, Google Maps was selected for satellite and map-based route visualisation. Access to and use of the Google Maps API is free providing the final application is also free for users.
The project outcome includes a mobile software application (V-Tracker). The application, its encompassed algorithms and documentation form the primary deliverable for this project. Many crucial decisions were made with regard to the tools, plugins and open-source libraries used in V-Tracker. Each of those was chosen on the merit of their unique functionality. More information, in addition to well-deserved credit, is given for all the tools, plugins and open-source libraries used in V-Tracker in following sections.
The most noteworthy framework used in this project is: PhoneGap. In order to ensure that sensor data was reliably acquired using web-technologies and to facilitate the deployment of the application on multiple mobile devices, the Cordova (also known as PhoneGap) framework was selected. According to the PhoneGap website:
PhoneGap is an HTML5 app platform that allows you to author native applications with web technologies and get access to APIs and app stores. PhoneGap leverages web technologies developers already know best... HTML and JavaScript. [6]
Figure 3. Logo for Apache Cordova, the project behind PhoneGap [6]. You can read more about PhoneGap at http://phonegap.com/about.