Open access
Author
Date
2017Type
- Doctoral Thesis
ETH Bibliography
yes
Altmetrics
Abstract
As the number of consumer computing devices at our disposal has grown, we find ourselves in situations where we have access to more than a single device. Even though people have started using multiple devices both sequentially and in parallel, applications and operating systems offer limited support for these scenarios. Support is often limited to data synchronisation via the cloud or restricted to devices from the same manufacturer. The research community has been exploring how applications could adapt to the set of devices at hand and has devised new cross-device interaction techniques. Frameworks and tools have been developed for designing and prototyping such cross-device applications. However, less attention has been paid to what is needed to go beyond research prototypes and to engineer products.
In this thesis, we investigate how we can support the development of cross-device applications across the whole engineering lifecycle from design, prototyping, and implementation to testing, debugging, and usage analysis.
We start with an analysis of existing cross-device research as well as general purpose developer tools for the whole engineering lifecycle. We focus on tools for working with web technologies as we have chosen to use the web as a foundation for this thesis due to its cross-platform nature. We then introduce a set of novel tools for cross-device engineering that implement the requirements we identified in the analysis.
For the design and prototyping phase, we contribute MultiMasher, a visual tool for creating functional cross-device mashups. The tool allows developers and designers to experiment with cross-device ideas based on existing applications without the need to write code.
The implementation phase is addressed with XD-MVC, a cross-device library. XD-MVC consists of a layered architecture to provide various levels of support. At the lower end, a JavaScript API offers basic functionality such as connection management, state synchronisation, and device roles. At the other end of the spectrum, we offer high level components for device pairing and UI distribution based on patterns.
XD-Tools offers support for informal testing and debugging. It caters to the need of being able to test and debug many different device combinations and easily switch between different ones. This is achieved both with the integration of real devices as well as the emulation of devices on the developer machine. At the same time, the tool alleviates the issues of fragmentation of the code across devices by aggregating information for existing debugging tools such as the console.
Formal, automated testing is addressed with XD-Testing. It allows developers to write parametrised UI tests in a new domain specific language. These tests can be repeated across multiple device combinations to test functionality independent of the set of devices used. At the same time, a developer can use explicit device selectors to test the distribution of the UI for a given device combination.
Finally, we contribute XD-Analytics for usage analysis across multiple devices. We introduce a set of metrics that are of particular interest in cross-device scenarios. We have implemented these metrics in a prototype and discuss how we used the tool to track the introduction of a cross-device feature in an existing application.
To evaluate our tools, we have implemented a number of sample applications and conducted case studies as well as user studies. Show more
Permanent link
https://doi.org/10.3929/ethz-b-000222796Publication status
publishedExternal links
Search print copy at ETH Library
Publisher
ETH ZurichOrganisational unit
03455 - Norrie, Moira (emeritus)
More
Show all metadata
ETH Bibliography
yes
Altmetrics