What MVVM frameworks are available to work with Xamarin and which one I should choose?

Hi All

I have hard time trying to find a complete list of MVVM frameworks available for Xamarin. I couldn't find any list titled "MVVM frameworks to use with Xamarin", and of course there is no article to compare and contrast those frameworks, point out there pros and cons. I know couple of them, but I really need to know about them all. Because I'm going to start a new app, and it will be very sad if in the middle of the app I understand that the framework is not working for my case, or it's too difficult to utilise, or it lacks features that I needed. So please can someone guide me in my choice. What MVVM frameworks are available for Xamarin? What is your experience with them, and what pros/cons you would like to highlight about the frameworks that you've used, please be descriptive. May be you don't know the list, but you have an experience with one of them, it would be really helpful if you could give some feedback.

Thanks all in advance.

Posts

  • adamkempadamkemp USInsider, Developer Group Leader mod

    MvvmCross is popular. That's about all I know, but it's something!

  • ReactiveUI

    "Use the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform. Supports Xamarin.iOS, Xamarin.Android, Xamarin.Mac, WPF, Windows Forms, Windows Phone 8 and Windows Store apps."

    MVVM Light

    "The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in WPF, Silverlight, Windows Store, Windows Phone and Xamarin"

  • JeremyKolbJeremyKolb USMember ✭✭✭

    I use MvvmCross. It's highly customizable and you can even interop with Xamarin.Forms or Reactive. Supports WPF, iOS, Android, Windows Phone, Windows Store.

  • NMackayNMackay GBInsider, University ✭✭✭✭✭

    I'm using MVVM Light with Xamarin forms, we also use it for WPF dev so it's a nice fit into our technology stack. As the name suggests it's nice and light and you just pick and choose the bits you want to use, the messenger and relaycommand are excellent.

  • Thanks all for your suggestions.
    One question to users of MvvmCross. As I've noted in my question, can you please some benefits and I'm mostly interested in drawbacks or shortcomings of MvvmCross framework that you've faced during your development. In your answers please write the platforms for which you've used MvvmCross. Thanks.

  • @JeremyKolb Can you tell some pros and cons of using ReactiveUI vs MvvmCross.
    Here is what I've learnt about them so far, or at least the way I understood.
    Both are Mvvm frameworks. ReactiveUI utilises ReactiveExtensions, but as I understood you can use ReactiveExtensions with MvvmCross, so if one had to choose based on ReactiveExtensions availability, both are compatible, may be although ReactiveUI is more suitable and has finer support for Rx. Besides reactive extensions what are pros and cons of using one or the other framework? Could you give some points which one has and the other misses?

    Another thing is that both ReactiveUI and MvvmCross support iOS, Android, Mac, Windows and Windows Phone. But I've read somewhere that MvvmCross doesn't handle fragments well, so from your experience which one of these frameworks has implemented native client support the best?

    Are there any guidlines which could give directions which one to choose based on some requirements?

  • JeremyKolbJeremyKolb USMember ✭✭✭

    @GagikKyurkchyan.8683 I've never used ReactiveUI. Fragments work very well with MvvmCross and as of 3.5 now support rehydration out of the box.

  • CheesebaronCheesebaron DKInsider, University mod

    If you just want bindings, without anything else take a look at Bind

    But as already mentioned there is MvvmCross, MvvmLight and RxUI which are more complete frameworks.

  • Mustafa-ahmedMustafa-ahmed EGMember ✭✭

    @GagikKyurkchyan.8683
    I am very interested to know what framework you have choose and what problems you have faced with this framework ??
    Because I'm going to start a new app and i need your experience

Sign In or Register to comment.