Posted by Android Team
Signal is a freemium menstrual health application founded in 2012 and was one of the early developers at FemTech. The app helps women and people who date track menstruation and serves 11 million monthly active users in over 190 countries. Additional features are available through the app’s subscription tier, Clue Plus, including tools for tracking prenatal and postpartum health.
Access to well-organized and easily digestible menstrual health data can be an invaluable resource for people who menstruate, and Clue has supported these insights for Android users for over a decade. Like any codebase, though, the Clue app inherited technical debt. This limited the team’s ability to quickly push changes and features, increase developer efforts, and provide a modern UI to its users.
Clue previously relied heavily on custom views that made expanding the existing codebase difficult and required time-consuming testing methods that slowed down the development process. Clue’s codebase had additionally collected UI anomalies from hard-coded theme values such as color and size, and in 2022 Clue’s engineers recognized that they needed a more efficient and flexible solution. they finally landed jetpack designAndroid’s modern toolkit for building native UIs.
“We decided that a complete rewrite of the application with a particular emphasis on the UI layer would be the best course of action,” said Moctezuma Rojas, an Android developer at Clue. “This decision was based on the fact that it would enable us to have a more efficient and faster development cycle, quickly implement features that would take longer to develop using ideas, and make our code more testable.” make.”
Build a faster and more efficient codebase with Compose
The Clue team saw immediate benefits by rewriting their app with Compose. For one, a faster, more efficient test and development cycle significantly reduced the time and effort required to improve the codebase, reducing bugs and errors. Compose enabled Clue’s engineers to implement features faster than Visuals.
Migrating the app to composition improved testability for screens, faster development from idea to release, and improved standardization processes that align with best practices recommended by Android Developer Resources, Compose helped the Clue team double—and in some cases, even triple—their development speed compared to the old codebase.
“With the traditional view system, it was difficult to add new features, visual presentations or user interactions due to the need for custom view creation and maintenance. However, by using Jetpack Compose, we were able to implement the Cycle View feature without any limitation in adding elements. able to evolve and scale seamlessly,” Moctezuma said.
Compose helped Clue’s developers quickly overhaul several other important features within the application, including the calendar view, analysis view, and account management and settings screens.
More creativity made possible with Compose
Compose developers enabled Clue Screen to be more intuitive, improve scrolling, and deploy a custom color system and component library that aligns with the brand—a huge win for the team. Previously, adding new features, visual presentations, or user interactions was complex because they required creating a custom view and requiring constant maintenance.
The Compose API made it much easier to test the UI, so Clue developers felt more confident about what they were shipping to users. As an added benefit, Clue developers now have more room to explore UX innovation.
“Custom dynamic theming allows designers to freely explore their creativity without being limited by technical constraints,” Moctezuma said. “It provides a flexible and scalable approach to styling that can be easily adapted as our app evolves and grows, resulting in an engaging and cohesive user experience.”
All of these changes significantly improved the user experience for Clue customers, resulting in fewer error messages and bug reports. The Clue team also says that using Compose has enabled them to identify areas of improvement in the app’s code that could potentially impact its users.
“Compose increases developer speed by removing boilerplate code, works seamlessly with existing code bases thanks to its interoperability API, and improves UI testing,” said Tilbe Salton, a senior Android developer at Clue. – which has always been painful in Android development.”
Continued Success with Jetpack Compose
Compose has improved with each subsequent app release and made preview and live editing features more reliable for Clue engineers, allowing for a more flexible development experience from start to finish. Since implementing Compose, the Clue team has also seen enthusiasm from potential candidates interested in working on the app to work with more modern development techniques.
“There are many potential growth areas in the future of Compose that could benefit developers and companies. As Compose continues to evolve, we can expect to see further improvements in performance, stability, tooling and cross-platform support, Which will make it an even more compelling option for building high-quality UIs,” Tilbe said.