15

i am right now exploring the capabilities of Monotouch (by Xamarin) with other solution such as Monocross?

So can any one explain when to use Monotouch and when to Monocross.

What is the advantage & disadvantage of these framework w.r.t native app development?

abatishchev
  • 98,240
  • 88
  • 296
  • 433
user1227928
  • 831
  • 1
  • 12
  • 27

2 Answers2

27

Just to try to add visually to Stephane's answer, here's a diagram slightly adapted from one of my presentations:

Diagram


Note that you don't have to use a shared library like MonoCross, MvvmCross, etc. You can always write your own architecture. This is like in web apps - you don't have to use WebForms, ASP.Net Mvx, FubuMvc, etc - you can just use Request and Response and talk more directly with the web server.

So, you can just write your own code to adapt your app to each platform like:

Diagram


Which approach you should take - depends on the requirements of you and your app... and on personal opinion too.

Stuart
  • 66,722
  • 7
  • 114
  • 165
10

Monocross is a cross platform MVC framework. As a framework, it's open source. But you need either monotouch or mono for android in order to deploy on the devices.

Those 2 stuffs doesn't compare. They sum up.

With tools like Monocross or MvvmCross, you really get a crossplatform code sharing framework, and that's your advantage over coding in native languages.

Stephane Delcroix
  • 16,134
  • 5
  • 57
  • 85
  • And both Monocross and Monotouch are as native as native code – Stephane Delcroix Feb 12 '13 at 10:37
  • So lets say i am using Monotouch provided by Xamarin. So it does not required to install Monocross. Otherway if you want to use Monocross then you need to install Monotouch? What are the additional feature i am getting if i install Monocross...pretty confusing – user1227928 Feb 12 '13 at 10:47
  • 6
    It's like comparing .NET (as MonoTouch) and ASP.NET (as Monocross). The first gives your base development tools/library for a platform (iOS) and does **not** require anything else. The second (Monocross) adds functionalities on top of the first (MonoTouch), so it's **optional** and **requires** the first (MonoTouch). – poupou Feb 12 '13 at 14:30
  • 1
    @user1227928 by using Monocross (or Mvvmcross) on top of monotouch you get a MVC (resp MVVM) framework that allows you to share code between platforms. The same code you write on top of [X]cross will work (with minor tweaks) either you use [X]cross on monotouch, [X]cross on MfA, [X]cross on WP7, ... – Stephane Delcroix Feb 13 '13 at 09:12
  • Can you use Monocross (for commercial, cross-platform development) WITHOUT buying this pricey license from Xamarin? I've searched the web high and low and I still don't have an unambiguous answer for that : ) – Konrad Morawski Jun 24 '14 at 12:51