there’s possibly different answers for all of these, though we are still figuring out what we want to recommend in many cases.
LiveData vs. Model:
Model was built for a different use case than LiveData, though their usage overlaps quite a bit. Model was explicitly made to be used in concurrent contexts, even though the observability is the main thing that gets talked about. Model is easy to use with compose, but not yet easy to use outside of compose. we have some thinking to do in terms of whether or not we think Model usage outside of compose is something we want to recommend or not.
Data Binding:
In a simplistic sense, Data Binding is bringing logic to XML, and compose is bringing XML to logic, but both have the same goal. IMO taking data binding to its conclusion means building a full-fledged programming language inside of xml which i don’t think is a good idea (building programming languages is hard). I therefore don’t see a real future for data binding in a world where compose is an option (and production ready)
View Models:
I think there will still be use cases where viewmodel’s characteristics are useful and the right tool for the job, but i think right now there are things that are stuffed into viewmodels that probably shouldn’t be, and i think compose will end up teasing a lot of that out. time will tell though, i’m not as sure about this one and i’m probably not the right person to ask.