Computational Framework to Support Development of
Applications Running on Multiple Co-located Devices
Pedro Albuquerque Santos
NOVA LINCS, NOVA University of Lisbon
Portugal
Sustain.RD, ESTSetúbal, Instituto Politécnico de Setúbal
Portugal
pe.santos@campus.fct.unl.pt
Rui Neves Madeira
NOVA LINCS, NOVA University of Lisbon
Portugal
Sustain.RD, ESTSetúbal, Instituto Politécnico de Setúbal
Portugal
rui.madeira@estsetubal.ips.pt
Rui Porfírio
NOVA LINCS, NOVA University of Lisbon
Portugal
rui.porfrio@campus.fct.unl.pt
Nuno Correia
NOVA LINCS, NOVA University of Lisbon
Portugal
nmc@fct.unl.pt
ABSTRACT
We designed a framework to generalize the development of appli-
cations with UI elements distributed across co-located devices. The
framework is comprised of diverse components in order to deal
with the complexity of such a task, including: authentication and
authorization services; a broker to sync information across multiple
application instances; background services that gather the capa-
bilities of the devices; an indoor positioning system to determine
when devices are close to each other; and a library which helps
integrating Web applications with the broker, determining which
components to show based on UI requirements and device capa-
bilities, and custom elements to manage the distribution of the UI
components and the multiple UI application states. Collaboration
is supported by sharing UI states with other users.
CCS CONCEPTS
· Human-centered computing → Human computer interac-
tion (HCI); Ubiquitous and mobile computing; · Computer
systems organization → Distributed architectures; · Software
and its engineering → Software libraries and repositories;
Development frameworks and environments.
KEYWORDS
multi-device applications, cross-device interaction, context-awareness,
application framework, proxemics, indoor positioning, UX, HCI
ACM Reference Format:
Pedro Albuquerque Santos, Rui Neves Madeira, Rui Porfírio, and Nuno
Correia. 2021. Computational Framework to Support Development of Ap-
plications Running on Multiple Co-located Devices. In Companion of the
2021 ACM SIGCHI Symposium on Engineering Interactive Computing Systems
This work is licensed under a Creative Commons Attribution-Share Alike
International 4.0 License.
EICS ’21 Companion, June 8ś11, 2021, Virtual Event, Netherlands
© 2021 Copyright held by the owner/author(s).
ACM ISBN 978-1-4503-8449-0/21/06.
https://doi.org/10.1145/3459926.3464758
(EICS ’21 Companion), June 8ś11, 2021, Virtual Event, Netherlands. ACM,
New York, NY, USA, 7 pages. https://doi.org/10.1145/3459926.3464758
1 INTRODUCTION
People use an increasingly large number of computing devices in
their daily lives [15]. However, applications are usually confned to
run on a single device at any given time. At best, they are capable
of synchronizing certain types of data, and such synchronization
often needs to be explicitly turned on [5, 8, 33].
Therefore, there are missed opportunities to build integrated
experiences that run across multiple devices. We believe that it is
important and benefcial to take advantage of the devices around
us by combining them and integrating their resources. It should
be possible to leverage the strengths of some devices in certain
scenarios, while minimizing the weaknesses of other devices in
some situations.
This realization motivated us to develop the tools needed to
build applications that have their user interface (UI) seamlessly
distributed across multiple co-located devices. In order to fulfll our
vision, we designed a framework that generalizes the development
of this type of applications and that allows third-party developers
to take advantage of the increasing pervasiveness of digital devices.
The initial version of the framework laid the foundation needed
to build cross-device application experiences [31]. Later, we focused
on the issue of automatically distributing UI components among
co-located devices by matching the description of the capabilities
of each of the co-located devices and the requirements of each of
the application’s components [32].
The current version allows users to switch between automatic
and manual distribution of the application’s UI elements by de-
vice. Moreover, while the framework initially kept the current per
user and application’s UI state synchronized across the application
instances running on multiple devices, the framework has since
been extended to allow storing multiple UI states per user and
application. Furthermore, these UI states can be shared to enable
collaboration between multiple users.
These additions were accompanied by the development of reusable
components that can be easily integrated into applications. This
should allow developers to quickly give users direct control over
63