Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

MvvmCross - v3 - Writing a First App

4.91/5 (8 votes)
23 Mar 2013Ms-PL2 min read 74.9K  
MvvmCross - A CrossPlatform MVVM Sample

Introduction

MvvmCross is a truly cross-platform MVVM C# framework.

This series of articles will walk you through the use of MvvmCross to produce a first simple app - a TipCalculator.

Beyond this first walkthrough, there are many other things that MvvmCross can do - but this article will just stick to the basics for now!

Background

  • MvvmCross is now 18 months old.
  • This article is about v3 - code-named Hot Tuna.

Using the Code

The code for this article can be found here.

Setting up MvvmCross v3 is quite awkward at the moment - you need to setup Microsoft SDKs, Xamarin 2.0 products and some strange Portable Class Library (PCL) hacks.

This setup is documented here.

This setup is changing in the next few weeks - official Xamarin PCL support is coming - I will update this article when the new simpler steps arrive.

The Target

In this first Model-View-ViewModel project, we’ll aim to create a simple single screen cross-platform application for calculating the tip at a restaurant.

Here's a sketch of where we hope to end up:

The goals of this first application are all about introducing:

  1. the general structure of MvvmCross applications
  2. some of the code elements required in all MvvmCross applications
  3. how data-binding support on Xamarin.Android and Xamarin.iOS (the products formerly known as Mono for Android and MonoTouch)

Within this guide, we won't attempt to provide any introduction to the Apple, Google, Microsoft, and Xamarin products and platforms - there are plenty of guides available already for all of those. Instead, we'll focus instead on pure, unadulterated MvvmCross Nirvana.

The Articles

History

  • 22nd March, 2013 - First submission

License

This article, along with any associated source code and files, is licensed under The Microsoft Public License (Ms-PL)