what is mvvm, why use mvvm other aluternatives of mvvm what is an architecture ? what is viewmodel? why use it? internals of viewmodel how viewmodel survives configuration changes? ways to get a viewmodel : viewmodelProvider viewmodelProvider with factory using “By” delegate in kotlin synthetic (KSP) difference between livedata and kotlin flows internals of livedata