Skip to content

Design Decisions

Hadi Michael edited this page Sep 13, 2012 · 5 revisions

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.

Document Control

This is a living document that may be modified from time to time. Please refer to the Wiki History for detailed revision information.

Current version:

Version Date Modified by Details
v3.0.0 XX-XX-2012 Hadi Michael Rev. A for final submission.

Hardware

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 are 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.

Mobile Devices

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.

Device sensors

It was decided that the application would attempt to collect and store information from both 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 Hardware page.

Software

Selected subset of web-technologies

It was decided, for this stage of the research, that the application run completely inside the browser. This implied that all necessary computation was to be performed locally using the 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 that the application's ability to run independent of a server and more importantly, without the need for constant connectivity. The obvious constraint presented here is the limited realtime computational power available in the browser's Document Object Model (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 storage

HTML5 standards suggest two primary forms of data storage: local key/value storage (localstorage/sessionstorage) and local databases (SQLite3). According to the W3C, the SQLite3 standards are no longer being maintained, as a result local key/value storage was chosen as the primary form of data storage. However in order to satisfy the requirement relating to easy data export for manual data analysis, the SQLite web-interfaces were used to enable users to create a SQLite3 database that could be extracted from the device. The database can then provide comma-separated tables that can be imported into Mathematica (or similar mathematical packages).

Route visualisation

Google serve an open API for accessing their maps platform. Given the power and well-established developer community, Google Maps was selected for route visualisation. The Google Maps API access is provided for free on the condition that the application be delivered free to users.

Software tools, plugins and open-source libraries

The V-Tracker project outcome includes a mobile software application. 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 these 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 at Credits and Licenses.

The most noteworthy framework used was: 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 (known as PhoneGap) framework was selected. According phonegap.com:

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.

alt-text
Figure 1. Apache Cordova, the project behind PhoneGap

You can read more about PhoneGap at http://phonegap.com/about.