MVVM with Xamarin Classic: The Basics

Xamarin makes it possible to develop apps for multiple platforms (Windows Phone, iOS, Android). The downside to this, is the need to develop a view per platform with codebehind. This results in duplicate code throughout the solution. This could partially be avoided by using a Shared Library. This library can, for example, contain classes that offer functionality to consume webservices. The part that cannot be avoided is UI specific code. Another downside of this approach is the lack of testability because you need to create unittests per platform and also need to test UI codebehind. The classes in the code behind have too many responsibilities, this is not SOLID.
Lees verder