I want to develop a real-time chat application in Android like WhatsApp or telegram
for the all-purpose client should connect to the server via WebSockets and even 
offline or online has to works fine. I decided to use Android architecture like MVP, MVVM, and MVI, but I'm confusing which one is suitable for my app

Can anyone help me to choose one of them?

And my second question: is it ok to use WebSockets for all APIs or it should better use WebSockets and REST APIs together?

Thanks for your help