We live surrounded by many computing devices. However, their presence has yet to
be fully explored to create a richer ubiquitous computing environment. There is an
opportunity to take better advantage of those devices by combining them into a unified
user experience. To realize this vision, we studied and explored the use of a framework,
which provides the tools and abstractions needed to develop applications that distribute
UI components across co-located devices.
The framework comprises the following components: authentication and authorization
services; a broker to sync information across multiple application instances; background
services that gather the capabilities of the devices; and a library to integrate
web applications with the broker, determine which components to show based on UI
requirements and device capabilities, and that provides custom elements to manage the
distribution of the UI components and the multiple application states. Collaboration
between users is supported by sharing application states. An indoor positioning solution
had to be developed in order to determine when devices are close to each other to trigger
the automatic redistribution of UI components.
The research questions that we set out to respond are presented along with the contributions
that have been produced. Those contributions include a framework for crossdevice
applications, an indoor positioning solution for pervasive indoor environments,
prototypes, end-user studies and developer focused evaluation. To contextualize our
research, we studied previous research work about cross-device applications, proxemic
interactions and indoor positioning systems.
We presented four application prototypes. The first three were used to perform studies
to evaluate the user experience. The last one was used to study the developer experience
provided by the framework. The results were largely positive with users showing preference
towards using multiple devices under some circumstances. Developers were also
able to grasp the concepts provided by the framework relatively well.Vivemos rodeados de dispositivos computacionais. No entanto, ainda não tiramos partido
da sua presença para criar ambientes de computação ubíqua mais ricos. Existe uma
oportunidade de combiná-los para criar uma experiência de utilizador unificada. Para
realizar esta visão, estudámos e explorámos a utilização de uma framework que forneça
ferramentas e abstrações que permitam o desenvolvimento de aplicações que distribuem
os componentes da interface do utilizador por dispositivos co-localizados.
A framework é composta por: serviços de autenticação e autorização; broker que sincroniza
informação entre várias instâncias da aplicação; serviços que reúnem as capacidades
dos dispositivos; e uma biblioteca para integrar aplicações web com o broker, determinar
as componentes a mostrar com base nos requisitos da interface e nas capacidades dos
dispositivos, e que disponibiliza elementos para gerir a distribuição dos componentes da
interface e dos estados de aplicação. A colaboração entre utilizadores é suportada através
da partilha dos estados de aplicação. Foi necessário desenvolver um sistema de posicionamento
em interiores para determinar quando é que os dispositivos estão perto uns dos
outros para despoletar a redistribuição automática dos componentes da interface.
As questões de investigação inicialmente colocadas são apresentadas juntamente com
as contribuições que foram produzidas. Essas contribuições incluem uma framework para
aplicações multi-dispositivo, uma solução de posicionamento em interiores para computação
ubíqua, protótipos, estudos com utilizadores finais e avaliação com programadores.
Para contextualizar a nossa investigação, estudámos trabalhos anteriores sobre aplicações
multi-dispositivo, interação proxémica e sistemas de posicionamento em interiores.
Apresentámos quatro aplicações protótipo. As primeiras três foram utilizadas para
avaliar a experiência de utilização. A última foi utilizada para estudar a experiência
de desenvolvimento com a framework. Os resultados foram geralmente positivos, com
os utilizadores a preferirem utilizar múltiplos dispositivos em certas circunstâncias. Os
programadores também foram capazes de compreender a framework relativamente bem