The Thinking Around Cross-Platform Development and Xamarin

On the last episode of Breakpoint (check out yesterday’s post), Jonathan, Paul, and I looked at developing cross-platform applications using Xamarin and Visual Studio. With RedBit being a Xamarin Premier Partner and myself being a Windows Phone MVP, we have successfully built cross platform products for customers or put them on the right path to go cross platform.

From my point of view as a Windows platform developer & Windows Phone MVP, Xamarin is a great tool to adopt to expand your skills and knowledge into new markets, extend the market reach for your apps, all while maximizing your existing code base. This will save you time and if you are trying to live off app revenue, it will accelerate time to additional platform markets and generate additional revenue for you.

While the episode was airing live, we got some questions on how to actually get started with Xamarin, so I’ll cover that here. I’ll follow up with another post on the cross platform Tip Calculator that I was building, but in the meantime, the source code for Tip Calculator can be downloaded from GitHub.

The Tools

There are four different categories for the Xamarin Tools:

  • Starter – If you are just playing around with Xamarin or want to experiment with a ‘Hello World’ type app, download this. This does not give you Visual Studio support and your app sizes are limited.
  • Indie – If you are an indie developer and your app is bigger than what the starter allows, then this level is your best bet.
  • Business – If you build apps for companies then this is a good place to start. At RedBit, we started here and this is where you start getting Visual Studio, WCF, SqlClient support, etc.
  • Enterprise – This one gives you a few extra features such as Technical Account Manager, one day SLA, and some prime components.

Couple of things to note:

  • You only get Visual Studio support with Business and Enterprise versions.
  • Visual Studio Pro and above is required for VS integration, the Express editions are not supported
  • Xamarin Studio can be used if you don’t have the right Visual Studio version.
  • Price is per developer and per platform

By the way, if you’re an MSDN subscriber, you actually get a discount off of your Xamarin license. Here’s more info on that.

A Recommendation

My recommendation is as follows:

  1. If you are new, start with the starter, no money out of your pocket and you can go ahead and experiment.
  2. If you have apps deployed to the Windows Store or the Windows Phone Store, get the 30 day trial for either iOS or Android to see if you can port your app over easily. You can also use the Indie version but you may hit the size limit when compiling. If it’s a smaller app, you should be able to get it ported within 30 days.
  3. If you build apps for others, invest in the technology unless you want to duplicate code in C#, Java & Objective C.

The best experience overall is with Visual Studio, so if you can, definitely go for it!

The Cost and Is it Worth It

You’re going to hear lots of discussion (or perhaps think it yourself) that ‘Xamarin costs to much’ to be beneficial and ‘would rather just write objective C or Java’. This is where you have to take a step back and ask yourself:

  1. How much is my time worth? Can I re-write my app within a $300 budget for one platform?

  2. Do I know Objective C/Java or do I have to learn another language?

  3. Do/Will my apps generate revenue for me? Maybe I should invest that revenue in tools?

  4. What are my goals:

    a. Do I want to expand my skillset?
    b. Target new platform markets?
    c. Look good at my company or to prospective clients?

These are only a few questions to ask yourself but my recommendation is

  • If you are an indie and apps make money, re-invest that money to target a new market to potentially increase revenue generated.
  • If your app needs large user adoption, you want to target as many platforms as possible.
  • If you are a contractor/consultant, spend the money and add it to your toolbox, there is a shortage of good mobile developers.
  • If you are an enterprise .NET shop developer, show your boss a prototype, the cost and time savings, and let the company pay for licenses!

For me, it is definitely worth the licensing fees.

What You Need To Get Started

Now that we’ve covered the thinking around cross-platform development and Xamarin, here are the starting points to help you move forward:

Stay tuned for for an upcoming multipart post on building the cross platform Tip Calculator featured on the episode and the new Universal App feature for Visual Studio 2013 announced at Build 2014.