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