honekamp.net

Xamarin Studio

I have had a look at Mono Develop from time to time, only to conclude that it is just not ready, not for prime time and not for anything else.

I failed to get even the simplest of examples do as I wanted them to do. There were weird compilation errors and also the run-time was not very stable.

That’s why I was initially skeptical when I learned about Xamarin Studio that has Mono Develop in its genes. Eventually, I got around my concerns and gave it a spin.

The installer1 offers the ability to support Android (which I have no interest in), iOS (which would be my primary target for software development), and, of course, OS X.

Without further ado, I was blown away by the product. The difference to Mono Development is dazzling in any possible aspect. Granted, some “genetic defects” still show in the ugly-ish controls, exemplified by the preferences dialog, that seem oddly out of style in the OS X landscape.

The general approach to IDE-ing implemented by Xamarin Studio is very close to the approach that is Visual Studio. This is hardly a surprise as Xamarin Studio is aimed at .NET developers and it, by all amounts, hits the bull’s eye.

In other words, anyone who has spent enough time in Visual Studio to get used to it will feel at home instantly. In terms of the delivered functionality for developers Xamarin Studio is certainly on equal terms in may aspects with Visual Studio.

Even more, some useful “gimmicks”, e.g. the outline view, is delivered as an integral part of Xamarin Studio. I wish that was also true for Visual Studio where you’d get equal services only by means of extensions.

According to the documentation, Xamarin Studio allows native access to the Cocoa Touch framework. This means that classes like UIButton are directly available from a C# program.

Sample Code
1
2
3
4
5
6
7
partial void actnButtonClick (MonoTouch.Foundation.NSObject sender) {
    UIButton senderButton = sender as UIButton;
    if (null == senderButton) {
        System.Diagnostics.Debug.Assert(false);
    }
    this.lblOutput.Text = "Action button " + senderButton.CurrentTitle + " clicked.";
}

This is brilliant as it allows to dive head-first into the world of iOS development while placing both feet on the firm ground of reliable .NET/C# skills in an environment that, for all intents and purposes, closely resembles the familiar Visual Studio.

I will certainly take some time to play around with Xamarin Studio and take benefit from my C# skills on the one hand and the ability to directly interact with Cocoa Touch on the other hand.

However, it is more than unlikely that I can afford to cough up the yearly fee for the most basic license type. Even if I had the intention to start developing in earnest I would think twice whether this approach is sustainable.

Putting massive investments in terms of development time on a platform that may or may not go away at some point in time is a scary perspective. To be clear, I wish Miguel de Icaza and the rest of the Xamarin guys that the product becomes a success.

The future of the product, however, is not in the hands of independent developers and small shops. It is all about whether or not the big players get on board.

  1. Which, I believe, is necessary in order to get the Mono framework onto the machine. The mere Xamarin Studio could just as well simply be dragged to the Applications folder.

Comments