Top 3 Xamarin Studio Features

At last month’s meetup of #SydMobNet in North Sydney I spoke about some of the updates and new features available in Xamarin 3, and Filip Ekberg (@fekberg) gave a great presentation on Xamarin.Forms.

You can see videos of the presentations here:

Introduction to Xamarin and New Features in Xamarin 3

Xamarin.Forms

Following on from this, and having played with these new features more I thought I’d list my top three.

I’m a Visual Studio fan when it comes to mobile development and I won’t pretend it’s an easy thing to tempt me away from this. I develop on a MacBook Pro running Windows 8.1 under VMWare Fusion. Prior to Xamarin 3 I would hop across to the Mac and Xamarin Studio to launch XCode for my iOS UI design, call in briefly at Xamarin Studio to let it generate the C# code from my XCode changes and then I’d be straight back into Visual Studio. Recently however, Xamarin Studio has taken several big steps in the right direction. Whilst the setup on the Mac works very well there’s no getting away from the fact that VMWare hits the battery over the head with a big stick. Repeatedly. Mine submits in under an hour from full charge. With these improvements to Xamarin Studio it’s suddenly a lot more practical to leave the VM powered down and get more life out of my battery.

The iOS UI designer has to get an honorary mention. I’ve been looking forward to this since it was first announced at Evolve last year. The only reason I’ve not included it in my top three is Xamarin Forms – I'm currently using this (including its platform specific capabilities) for all my UI.

NuGet

I used to make a lot of use of MvvmCross, which in turn relied on NuGet – or at least the way I usually used it did. Although I’m not making so much use of this now I still let NuGet do the legwork for me when it comes to using things like SQLite or Azure Mobile Services – or both (see my previous posts). I can now knock up a quick project making use of things like this without firing up my VM and launching Visual Studio. It also supports custom package repository paths, so I can set up my own local repository and work offline when I’m on the train – thanks to Geoffrey Huntley (@GeoffreyHuntley) for info on setting this up.

There's a great post with more details about this here.

Shared Projects

Described here

I first came across this in Windows Phone world with the introduction of universal projects for Win 8 and Windows Phone 8 in Visual Studio Update 2, which was explained well by Nick Randolph and Craig Dunn back at the April meetup of #SydMobNet. Prior to this I was a fan of the PCL approach to code sharing, finding linked files just too much hassle to maintain. I’ve heard shared projects described as “linked files on steroids”, which does sum it up quite well. At its simplest it allows a project to be shared, with all files within that project automatically shared as well, so no more adding a file and forgetting to share it in one of your platform specific projects. You can still make use of the platform specific capabilities of Xamarin Forms like this:

<OnPlatform x:TypeArguments="Font">
    <OnPlatform.iOS>Small</OnPlatform.iOS>
</OnPlatform>

However, you also get to make use of precompiler directives. Whilst I’m not an all-out fan of these per se, there are times when they can make life simpler. It’s also great to see Xamarin heading in the same direction as Microsoft on this front.

Side by Side Editing

When I’m editing pre Xamarin Forms projects which are using MvvmCross it’s a big help to be able to see the xaml/axml of two views side by side when both writing and debugging across multiple platforms.

There are more features available (see the Xamarin blog) but these make my top three for now. I’ve not listed Xamarin Forms as it’s more of a product enhancement than just a feature of Xamarin Studio, but it would be at the top of the list if I’d included it!

Also worth a mention is the new monthly pricing plan for the Indie license, detailed here (note that the monthly figures quoted for the business and enterprise licenses are for comparison only as these licenses are still payable annually). At $25 a month it becomes a lot more viable for hobbyists to get started, which will hopefully go a long way towards broadening the appeal of Xamarin and creating more opportunities for all of us.