Varv: Reprogrammable Interactive Software as a Declarative Data Structure
Authors
Most modern applications are immutable and turn-key despite the acknowledged benefits of empowering users to modify their software. Writing extensible software remains challenging, even for expert programmers. Reprogramming or extending existing software is often laborious or wholly blocked, requiring sophisticated knowledge of application architecture or setting up a development environment. We present Varv, a programming model representing reprogrammable interactive software as a declarative data structure. Varv defines interactive applications as a set of concepts that consist of a schema and actions. Applications in Varv support incremental modification, allowing users to reprogram through addition and selectively suppress, modify, or add behavior. Users can define high-level concepts, creating an abstraction layer and effectively a domain-specific language for their application domain, emphasizing reuse and modification. We demonstrate the reprogramming and collaboration capabilities of Varv in two case studies and illustrate how the event engine allows for extensive tooling support.
Research Questions / Practical Problems
Question signals indexed for this paper.
- 100%
Learning to Denoise Raw Mobile UI Layouts for Improving Datasets at Scale
CHI '22· Prototyping & User Testing +1
- 100%
How To Draw Commands? An Elicitation Study for Sketching on Spreadsheets
CHI '25· Prototyping & User Testing +1
- 100%
Learning User Interface Semantics from Heterogeneous Networks with Multimodal and Positional Attributes
IUI '22· Prototyping & User Testing +1
- 80%
Guided Bug Crush: Assist Manual GUI Testing of Android Apps via Hint Moves
CHI '22· Open-Source Collaboration & Code Review +2
- 75%
Steering Performance with Error-accepting Delays
CHI '19· Prototyping & User Testing +1
- 75%
KeyMap: Improving Keyboard Shortcut Vocabulary Using Norman's Mapping
CHI '20· Prototyping & User Testing
- 75%
X-Droid: A Quick and Easy Android Prototyping Framework with a Single App Illusion
UIST '19· Prototyping & User Testing
- 67%
Exploring The Future of Data-Driven Product Design
CHI '20· Knowledge Worker Tools & Workflows +2
- 67%
Screen2Vec: Semantic Embedding of GUI Screens and GUI Components
CHI '21· Explainable AI (XAI) +2
- 67%
Belidor: A Specification Language for Operationalizing Structural Analogies Between User Interfaces
CHI '26· Participatory Design +2
Based on Jaccard similarity of research subtopics & professions (≥60%)