Description
Wearable ubiquitous computing devices are often size- and power-constrained, which prevents them from directly connecting to the Internet. A common pattern is therefore to interpose a smart phone as a router and to deliver graphical user interfaces for such hardware. However, implementing the entire pipeline from embedded device through a phone to the Internet and back requires a disjoint set of languages and APIs accessible only to experts. In this paper, we present Fabryq, a new platform that handles the complexities of creating such applications. Fabryq is especially aimed at supporting field deployments of prototype ubicomp hardware, e.g., for new interactive health devices. Fabryq turns a smartphone into a bridge that connects the short range wireless technology of Bluetooth Low Energy (BLE) with our cloud service via the Internet. We introduce a protocol proxy programming model to find and control peripheral devices from Javascript; and describe a UI pushdown technique to render user interfaces on phones within reach of peripheral devices. To illustrate the utility of our platform, we also implement MicroFabryq, a breadboard prototyping platform similar to Arduino with functionality exposed over a JavaScript API built exclusively with Fabryq.