This project provides a cross-platform mvvm mobile development framework built on top of:
- Silverlight for WP7, WP8
- Mono for Android (or Xamarin.Android)
- MonoTouch for iOS (or Xamarin.iOS)
- the WinRT XAML framework for Windows 8 Store apps.
- Windows Universal projects (WPA8.1 and Windows 8.1 Store apps)
- Mono for Mac (or Xamarin.Mac)
This project makes extensive use of Portable Class Libraries to provide maintainable cross platform C# native applications.
Additional support available for:
A really quick way to get started is to use the Visual Studio 2012 MvvmCross Ninja Coder Extension - download it from Visual Studio Gallery
I have started a tutorial series entitled N+1 Days of MvvmCross starting with the basics of your first MvvmCross application and covering lists, commands, binding, and more with samples for each device. The code for N+1 Days of MvvmCross is available on GitHub
For more documents and articles, see the Wiki
For more samples, see the MvvmCross Tutorials Repository
Documentation and Examples
Samples and Videos:
- N Plus 1 Videos Of MvvmCross
- MvvmCross Tutorials
- Evolve 2013 talk - http://xamarin.com/evolve/2013#session-dnoeeoarfj
- NDC 2013 talk - http://slodge.blogspot.co.uk/2013/06/ndc2013-mobile-mvvm-and-xamarin-talks.html
- Xaminar - 2012 - http://slodge.blogspot.com/2012/12/mvvmcross-video-presentation-xaminar.html
- MvvmCross and Azure - 2012 - http://slodge.blogspot.co.uk/2012/11/azure-to-wpmonodroidmonotouch-video-of.html
The Tip Calc tutorial:
- A first app
- The Core Project
- A Xamarin.Android UI project
- A Xamarin.iOS UI project
- A Universal Windows App UI Project
- A Windows Phone UI Project
- A Windows Store UI Project
- A Wpf UI Project
- Tip Calculator - A recap
- The MvvmCross Manifesto
- High Level MvvmCross Objects
- Value Converters
- View Model Lifecycle
- ViewModel to ViewModel navigation
- Customising App and Setup
- Service Location and Inversion of Control
- Dialog - very draft
For more information please also see:
- an introduction article on CodeProject - http://www.codeproject.com/KB/cross-platform/566191.aspx
- the N+1 video series under production - N Plus 1 Videos Of MvvmCross
Questions and support:
Contact - but no open-source technical questions via these channels please:
If you would like to help with the project - including the documentation - then please get in touch :)
This project was born from:
- a fork once long ago of the MonoCross project, moving away from MVC and towards MVVM
- an extension project from www.cirrious.com
- some ideas from MvvmLight
- some ideas from ASP.NET MVC
- some ideas from OpenNetCF (Phone7.Fx)
- lots of my own ideas - www.cirrious.com and my blog
Here is the framework in action for the sqlbits conference app:
Public projects that have used this framework include:
- Kinect Star Wars - http://www.youtube.com/watch?v=MXPE2iTvlWg
- Aviva Drive - http://www.aviva.co.uk/drive
- Origo Foci-Eb 2012 - http://slodge.blogspot.co.uk/2012/10/origo-foci-eb-2012-example-mvvmcross.html
- Various Conference apps - SQLBitsX, DDDSW, LondonAzure, .... e.g. https://github.com/MvvmCross/MvvmCross/tree/vnext/Sample%20-%20CirriousConference
- The CrossBox DropBox client - https://github.com/runegri/CrossBox
- The Blooor shopping list app - https://github.com/Zoldeper/Blooor
- 1,500+ apps and counting with the XPlatformCloudKit framework - https://github.com/winappkits/XPlatformCloudKit/
- Have you used the app? Please send me your links and I'll add them here
- many more!
This is the third version of the MvvmCross platform - v3.
For more info on what this version specifically aims to provide, see:
If you are looking for the "older" version of MvvmCross, then it's still available and still receiving updates on the master branch at
How to get involved
If you have questions, then please ask them on StackOverflow with tag MvvmCross
Alternatively, people on Xamarin Forums can be very helpful
There is a Jabbr room - on #mvvmcross - but please ask questions on StackOverflow if you can - this helps make the questions and the answers better!
If I haven't seen your question and no-one else has helped, then you can also contact me - me at slodge dot com - but please be patient with me if I'm busy with work.
If you need professional support, then please do contact me - I work freelance and can assist. Please do consider hiring me - everyone likes 'free', but I'm worth paying for :)
If you find bugs or have feature requests, then please report them through GitHub - https://github.com/MvvmCross/MvvmCross/issues
If you would like to help make MvvmCross even better, then please do:
- new code - including pull requests via GitHub - or you can fork the project and build your own extensions
- new plugins - can be hosted in your own repositories
- please do blog about your adventures with MvvmCross - we're currently very light on documentation!
- if you use the framework, then please let me know - we love to see what people are doing with it.
This project is developed and distributed under Ms-Pl - see http://opensource.org/licenses/ms-pl.html
- MonoCross was the original starting point for this project, and was used as a reference under MIT - please see http://code.google.com/p/monocross/ for original details.
- Phone7.Fx is redistributed and modified here under Ms-PL - please see http://phone7.codeplex.com for original details.
- Tiny bits of MvvmLight are redistributed and modified here under MIT - please see http://mvvmlight.codeplex.com/ for original details.
- NewtonSoft.Json is redistributed and modified here under MIT - please see http://json.codeplex.com for original details.
- The original work on the JSON.Net port to MonoTouch and MonoDroid was done by @ChrisNTR - https://github.com/chrisntr/Newtonsoft.Json
- Sqlite-net - custom license - see https://github.com/praeclarum/sqlite-net/blob/master/license.md
- MonoTouch.Dialog - MIT X11 from https://github.com/migueldeicaza/MonoTouch.Dialog
- MonoDroid.Dialog - MIT X11 from https://github.com/kevinmcmahon/MonoDroid.Dialog
- OpenNetCF IoC (used from within Phone7.Fx?) - no longer used within the code
- Messenger ideas from JonathanPeppers/XPlatUtils under Apache License Version 2.0, and from GrumpyDev/TinyMessenger under simple license of "THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY"
- Color codes adapted from https://github.com/mono/sysdrawing-coregraphics under MIT License
Thanks to McCannLondon for sponsoring the initial part of this work - http://blogs.mccannlondon.co.uk/
Thanks to lots of people for their input over time - will add to this list...
Thanks to JetBrains for a community Resharper license to use on this project - http://jetbrains.com
Thanks to Infragistics for a control license for Nuclios and .Net.
If you want to support this project, please do get in touch!