Implementing Multi-Touch Gestures with Touch Groups and Cross Events

CHI 2019

Honorable MentionPDF

Multi-touch gestures can be very difficult to program cor-rectly because they require that developers build high-level abstractions from low-level touch events. In this paper, we introduce programming primitives that enable program-mers to implement multi-touch gestures in a more under-standable way by helping them build these abstractions. Our design of these primitives was guided by a formative study, in which we observed developers’ natural implementations of custom gestures. Touch groupsprovide summaries of mul-tiple fingers rather than requiring that programmers track them manually. Cross eventsallow programmers to summa-rize the movement of one or a group of fingers. We imple-mented these two primitives in two environments: a declar-ativeprogramming system and in a standard imperative programming language. We found that these primitives are capable of defining nuanced multi-touch gestures, which we illustrate through a series of examples. Further, in two user evaluations of these programming primitives, we found that multi-touch behaviors implemented in these programming primitives are more understandable than those imple-mented with standard touch events.