Key points are not available for this paper at this time.
Reactivity has become a popular approach to software development, especially in the worlds of frontend and mobile development, where software that is "live" must synthesize events from a variety of inputs (e.g., backends, user clicks, etc.) into a consistent application state. A host of platformlevel libraries, such as Apple's Combine, async/await, and Kotlin Flows, provide developers with the underlying tools to define reactive behaviors. However, while these libraries offer low-level functional plumbing like maps, filters, and collects, they stop short of any opinion on organizing a complex reactive system. Furthermore, common paradigms across the frontend communities suggest using reactivity to deliver ad hoc events like UI updates or occasional backend queries in the midst of other architectures but do not consider the possibility of structuring an application's entire, fast-updating state by means of these building blocks. We encountered such need and potential in our mobile applications. We present the Mall, a principled approach to managing state via reactivity. We pose the application's state as a bipartite graph between data and pure functions. We then identify three primary ways in which changes to data items can be transmitted through their dependent functions. These insights and corresponding software implementations make it possible to reason clearly about how changes propagate even in the presence of concurrency, complex dependency, and cycles. Our libraries in Swift and Kotlin form the architectural backbone of our iOS and Android applications.
Building similarity graph...
Analyzing shared references across papers
Loading...
Shir Levkowitz (Mon,) studied this question.
synapsesocial.com/papers/68e6f3a4b6db64358766e299 — DOI: https://doi.org/10.1109/syscon61195.2024.10553547
Shir Levkowitz
Building similarity graph...
Analyzing shared references across papers
Loading...