I work on a fairly large codebase (couple million lines of code), and over the last 3 or so years we've been gradually migrating everything to explicit state machines, written mostly declaratively (we built a little library to help with this). At this point we've migrated a little over half our codebase. It's slow going, but worth it. As a result, our UI is now actually begging to be written in something like Compose - classic Android views are awkward to use when you just want to declaratively update everything from a single source of truth. And as a bonus, our developers are also now thinking in a more "declarative" way, which means a lot of the biggest mental adjustments required to move to Compose are hopefully already done, just with different names.