Can LLMs replicate 4 years of Compose migration? Exploring the boundaries of automation with 279 XML files from a real product
- makunpixiv inc.
Migration to Jetpack Compose is progressing in many Android projects. However, in large-scale applications, a vast amount of XML-based UI remains, making migration costs still high. In this session, targeting a real product where manual Compose migration has been completed, we will examine to what extent that migration can be replicated using LLMs. The target is an Android project with 66 modules and 279 XML layouts, of which about 81% use ConstraintLayout. In this project, the actual Compose migration took about 4 years. In the evaluation, we restore the codebase to its state before the migration and generate Compose code from XML layouts. Furthermore, we incorporate a Self-Refinement Loop that detects visual diffs through screenshot testing with Paparazzi and feeds those results back into the LLM for regeneration. Rather than one-shot code generation, by repeating "generate -> verify -> fix," we evaluate how realistically LLM-driven Compose migration can be used. In this session, instead of simply showing the success rate of automatic conversion, we will share insights that can be used for actual migration decisions. Specifically, we will categorize layouts that are easy to leave to LLMs, layouts that need slight manual fixes, and layouts that require human design decisions, clarifying realistic boundaries when introducing LLMs into large-scale Compose migrations. While LLMs excel at boilerplate generation and static layout conversion, whether they can be trusted with alignment with existing architecture or screen-level design decisions must be carefully assessed. Through this session, we aim to enable attendees to decide "where to start trying LLM migration" and "where to keep human code reviews" in their own products. ▼ What you will gain from this session - Success and failure patterns of Compose migration using LLMs, targeting 279 XML layouts from a real product - Decision criteria for distinguishing between migrations that can be left to LLMs and migrations that require human design decisions - The effectiveness and limitations of the Self-Refinement Loop using Paparazzi (Translated by the DroidKaigi Committee)
Intended audience
・ Android engineers tackling Compose migration with large-scale XML layout assets ・ Tech leads who want to introduce LLM-based code generation into the production product development process ・ Developers interested in UI quality assurance using screenshot testing such as Paparazzi