On the other hand:
1. Decompose is able to provide different Router implementations for different routing options - currently there is only stack, but there are no limitations here.
2. Custom Compose transitions are also possible with the
animations API (should also work with shared transitions when they land in Compose)
3. Decompose is also well integrated with Android - you need just one line to instantiate the root component/node in an Activity, no things like NodeHost, etc.
4. Decompose is also agnostic to architecture patterns - components/nodes are just normal classes with normal constructors, you can do whatever you want inside
5. In Decompose, Components/Node are normal classes, no need to extend any class from the library - so your components/nodes may extend your own classes if needed, which is otherwise not possible
6. It is also possible to have multiple routers in the same component/node.
7. You can create child components/nodes and manage their lifecycles manually.
8. Additionally, Decompose is not coupled with Jetpack Compose and doesn't depend on it - it's possible to use whatever UI framework you want, and components/nodes do not depend on UI either. There are separate extensions for Compose and Android views integration.
And yeah, Decompose is not based on RIBs, but inspired -
see the explanation.