What a ride Xamarin has had! From its beginnings as a team of developers committed to creating an open-source implementation of the .NET framework to catching the wave of mobile development, Xamarin has navigated the turbulent waters of the software tools market. This review examines the company's latest release, Xamarin 2.0, which includes Xamarin Studio, a stand-alone IDE for mobile apps, and its counterpart, a Visual Studio plugin from which you can write iOS and Android apps in C#.
Xamarin up to this Point
Over the last decade, the team behind Xamarin has released a steady stream of products that reflect their mission of cross-platform C# development: the Mono framework that provided C# developers the ability to run large portions of C# code on non-Microsoft operating systems; MonoTouch, Xamarin's Mono engine running on the iOS platform; and MonoDroid, Xamarin's port of its Mono framework to the Android platform. Finally, the recent release of Xamarin.Mac allowed development of native applications on OSX using C#.
Because of the staggered releases, the products seemed to be standalone tools that had little in common besides the Mono framework foundation. Managing GUIs on iOS is substantially different from Android, which is different than OSX. If you wanted to own each platform implementation Xamarin released, the cost would be prohibitively high, especially for independent consultants and small development shops. So, Xamarin addressed these issues in one bold stroke by releasing Xamarin Studio an IDE for Windows and Mac that bundles Xamarin's various tools. (A separate Visual Studio plugin was released at the same time.)
Full Mobile Jacket
Xamarin 2.0 bundles the company's Android, iOS and Mac development tools in a single affordable package aimed at all tiers of developers. The free Starter edition includes the Xamarin Studio IDE enables developers to create Android, iOS and Mac apps using C#. However, the free edition doesn't allow developers to exceed 32k of compiled IL code and it cannot import or call upon any third-party libraries. The $299 Indie edition removes this restriction. Things start getting really interesting for .NET developers with Xamarin Studio's $999 Business edition. This version adds the ability to code iOS applications within Visual Studio. Yes, you read correctly code iOS applications in Visual Studio! Granted, you still need a Mac to compile and deploy the application to iOS devices (more on that later), but the fact that you can use a familiar IDE to develop iOS applications is a game changer.
All the power tools and tweaks that you may have added to your Visual Studio installation are at your full disposal. This not only makes VS .NET developers immediately more productive and comfortable in an IDE they live in every day, but it also brings a host of third-party Visual Studio add-ons to the iOS development world. Talk about maximizing your investment!
The high-end release, the $1899 Enterprise edition, adds a collection of premium components to the Business edition, along with a next-day SLA and hotfix support. Xamarin throws in a technical kick-off session for Enterprise customers as well.
Xamarin Studio is more than just a collection of Xamarin technologies under one umbrella. The two most important additions that make this product stand out are the integrated iOS build and deploy technologies and Xamarin's new component marketplace. Let's look at the iOS features first.
Using Xamarin Studio on a Mac allows for a straightforward build and deploy to an iOS device. Simply tether the iOS hardware to the Mac running Xamarin Studio and target the device to receive either the debug or release application (Figure 1) .
Figure 1: Creating Xamarin.iOS applications using Xamarin Studio on a Mac.
Because of the way Apple does things, any application deployment to iOS devices requires you to have signed up as an Apple iOS Developer and set up your provisioning profiles for the target devices. This holds true whether coding and deploying apps from a Mac or Windows computer. But deploying and debugging apps from a Windows computer is where the coolness factor comes into play.
Xamarin has created a server agent in Xamarin Studio IDE for Mac that Visual Studio developers with Xamarin Studio installed can connect and transmit to. While this should be an automatic process, I had to manually set the IP address of my Mac to get my Windows PC to connect and send build requests to my Mac. This produced a programmer's high the first time I saw this in action. The fact that you can build a native iOS application within Visual Studio (Figure 2) using C# and a wide array of .NET-style libraries is terrifically empowering if you're a .NET developer.
Figure 2: Configuring the Xamarin Build Server in Visual Studio.
As shown in Figure 3, you can debug the app directly from Visual Studio as well.
Figure 3: Debugging a Xamarin iPad application from Visual Studio.