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)
- WPF
- Mono for Mac (or Xamarin.Mac)
This project makes extensive use of Portable Class Libraries to provide maintainable cross platform C# native applications.
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
Binaries:
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
General articles:
- The MvvmCross Manifesto
- High Level MvvmCross Objects
- Databinding
- Value Converters
- View Model Lifecycle
- ViewModel to ViewModel navigation
- Customising App and Setup
- Service Location and Inversion of Control
- Assemblies
- Plugins
- Testing
- Dialog - very draft
iOS Articles:
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
- blogs
- Stuart's blog
- Cheesebaron's blog
- DeapSquatter's blog
- Odenaxos's blog
- Greg's blog
- others? Get in touch if you think your blog should be here......
Questions and support:
- on StackOverflow
- on Xamarin forums
Contact - but no open-source technical questions via these channels please:
- on Twitter - @MvvmCross
- by chat - Jabbr/mvvmcross
- by email - mvvmcross email
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
- https://github.com/MvvmCross/MvvmCross/tree/master
- https://github.com/MvvmCross/MvvmCross/tree/vNext
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!