While not a multiplatform approach, Google most often refers to
nowinandroid as their go-to app for best practices recently.
In this repo, the
architecture learning journey draws a more concrete picture of their architecture ideas.
It's basically MVVM + UDF + immutable objects.
My personal choice is similar.
• I also tend to only expose a single UI state from the view model to the UI layer to prevent inconsistencies. I guess this is an MVVM variant, which stole ideas from MVI, but it fits well with compose.
• Opposed to Google's architecture guide, I prefer to have a "real" domain layer with domain models and logic inside and a data layer that depends on the domain layer. The domain layer is a pure JVM gradle module, not an Android library.