The press has been abuzz recently with talk about Microsoft buying or making an investment in Xamarin as part of its quest to bolster it’s mobile capabilities.
If you are a mobile developer, do you really want to use Xamarin?
I think the whole question boils down to how much “back end” code your application contains. If your app contains much in the way of back end computations, or especially C/C++ code that needs integration, then Xamarin is your ticket to three platforms for roughly the development price of one. This can be a huge advantage in getting apps to all potential customers.
The hitch is that the user paradigms for the three platforms, Windows Phone 8, Android and Apple iOS, are subtly but concretely different. You can settle for controls that homogenize the three together into one single platform. That reduces the amount of development and potentially the user manual development time. But the downside is a user interface that will always be in some ways slightly off.
Remember how Adobe used the hand gesture instead of the Windows pointer in its earlier Acrobat products to redefine the Windows GUI to be more like Mac? It worked, but it was an annoyance to Windows users who wanted all apps to use the same conventions.
Although you can use Xamarin to eliminate much of the three platform development, you can never forget that you are developing on three platforms. At a minimum, three development versions will have to maintained. Much of the back end code can be created in common but because there are three different GUI’s, you will have to maintain three different user interfaces, as well as three different development versions.
That being said, the advantages of Xamarin are immense. If you are already a Windows developer. it allows you to do most of the development in the tool set you prefer–Visual Studio. And instead of learning Java for Android, or Objective C for iOS, you can stick with C# if that is most familiar to you.
I hope Microsoft will buy Xamarin, or make a larger investment to integrate it into Visual Studio and extend it its licensing to the packs sold to Microsoft Partners. Right now, the Xamarin-MSDN special discount offer is limited to those developers/businesses who buy Visual Studio through MSDN at retail. The Microsoft Partners who receive Visual Studio included in the Partner Packs are left to purchase Xamarin at full price–$999 per platform, per developer. Given the cost, many organizations may very well pass on it.
Time will tell where this relationship goes. I see Microsoft with a strong interest in Xamarin technology. With the introduction of Microsoft Office for iPad, Microsoft has clearly signaled its multi-platform goal for its current and future products.