Toolbox is an all-in-one Android application that brings everyday utilities and home-screen widgets into one package. That product shape creates a useful engineering constraint: many small features must feel like one coherent app.
Prefer incremental migration
Migrating substantial UI from XML to Jetpack Compose does not need to become a rewrite. A safer path is to choose one utility surface, define its state and events clearly, and let the old and new screens coexist while behavior is compared.
Keep feature state local
Each tool should own the state it needs, while shared settings and navigation remain at a higher boundary. This keeps recomposition understandable and prevents an update in one utility from invalidating unrelated screens.
Measure release risk
For a widely installed utilities app, delivery safety matters as much as visual modernization. Track crashes, startup behavior, accessibility, and the most-used flows after each migration step. Compose is valuable when it improves iteration without making those signals harder to read.
The practical lesson is simple: modernize one boundary at a time, keep the product usable throughout the migration, and let measured behavior—not framework enthusiasm—decide the next step.