Since Jetpack Compose went stable almost 2 years ago, the enthusiasm for this technology has continued to increase, and its adoption for new projects is a no-brainer. However introducing Compose in a very large and long existing codebase is another story.
At Deezer, we have been working with a Design System for several years now to enhance productivity and consistency. The synergy between Design System and Compose, thanks to composition, seemed a huge opportunity for us to accelerate future developments while creating delightful new experiences. Therefore we established a strategy to migrate our Design System and use Compose in new features, as well as migrate the existing ones. Here are the different steps:
Migrating an existing page entirely to get acquainted with the new paradigms introduced by Compose
Defining a roadmap to initiate a new Compose Design System following Atomic Design principles
Designing our components API to foster reusability and flexibility, for instance by using slot APIs and UI components models
Specifying shared guidelines and standards for both our new Design System and Compose developments
Our return on experience will help you discover possible solutions, better understand the pitfalls to avoid (as we fell into some of them) and see what strategy you could apply to migrate your own apps to Compose.