DIDUP: Dynamic Iterative Development for UI Prototyping
Jenny Ma, Karthik Sreedhar, Vivian Liu, Sitong Wang, Pedro Alejandro Perez, Lydia B. Chilton
TL;DR
The paper addresses the fragility of current LLM-assisted UI prototyping tools, which tend to follow a rigid, waterfall-like process. It proposes DIDUP, a system that enforces an iterative spiral development model for code-based UI prototyping, and introduces three mechanisms—adaptive planning, code injection, and lightweight state management—to support dynamic, incremental progress. Empirical evaluation shows DIDUP yields more complete and stylistically refined UIs with safer change management and rollback capabilities, outperforming a GPT Pilot baseline. The work demonstrates that a spiral-development approach can significantly improve rapid, user-guided UI prototyping in front-end development with LLMs, enhancing adaptability to evolving requirements and design exploration.
Abstract
Large language models (LLMs) are remarkably good at writing code. A particularly valuable case of human-LLM collaboration is code-based UI prototyping, a method for creating interactive prototypes that allows users to view and fully engage with a user interface. We conduct a formative study of GPT Pilot, a leading LLM-generated code-prototyping system, and find that its inflexibility towards change once development has started leads to weaknesses in failure prevention and dynamic planning; it closely resembles the linear workflow of the waterfall model. We introduce DIDUP, a system for code-based UI prototyping that follows an iterative spiral model, which takes changes and iterations that come up during the development process into account. We propose three novel mechanisms for LLM-generated code-prototyping systems: (1) adaptive planning, where plans should be dynamic and reflect changes during implementation, (2) code injection, where the system should write a minimal amount of code and inject it instead of rewriting code so users have a better mental model of the code evolution, and (3) lightweight state management, a simplified version of source control so users can quickly revert to different working states. Together, this enables users to rapidly develop and iterate on prototypes.
