Shared ViewModel in MVI

408 Views Asked by At

How to use shared viewmodel in MVI architecture? Is it actually used to communicate between fragments, or do we use an interface, or a broadcast receiver? That part is not clear to me, and I can't find it anywhere. What is best practice? Thanks all

1

There are 1 best solutions below

1
Dharmender Manral On

You should use MVVM architecture, Take a reference from below code it will help you.

//Fragment A
class FragmentA:Fragment {
private lateinit var viewModel:LoginViewModel

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    viewModel = 
ViewModelProvider(requireActivity()).get(LoginViewModel::class.java)
}
}

//Fragment B
class FragmentB:Fragment {
private lateinit var viewModel:LoginViewModel

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    viewModel = 
ViewModelProvider(requireActivity()).get(LoginViewModel::class.java)
}
}

//This is share viewModel class
class LoginViewModel: ViewModel{

}