Xamarin

C# Development Platform for Android, iPhone, and Windows applications

Features:

  • Compatibility with XCode for building interfaces and Visual Studio for all coding
  • Access to all Android, Windows, iPhone APIs
  • Shared Projects (see below)
  • Xamarin Forms (see below)
  • NuGet package management

Pricing:


Tiered pricing scheme where paying more gives access to more features
Base tier is free, limited to projects with compiled code of 128 Kbytes
Recently purchased by Microsoft, subject to change

Shared Projects:


A special type of project in Xamarin that allows you to simultaneously develop for multiple platforms
using one code base (or more for more specialized parts for each platform). Helps reduce amount of code
to maintain by centralizing certain portions of code.

Xamarin Forms:


Special layout type exclusive to Xamarin. Allows shared code to lead to native feel in multiple platforms
simultaneously. See below for example. The same shared code leads to these three screen layouts. Note the
different locations of navigation buttons (Most visible in iPhone app: Sales, Customers, Products)

Pros:

  • Easy to Maintain code for cross-platform applications
  • Xamarin forms make creating native feeling apps easy
  • Interfaces well with Visual Studio and XCode

Cons:

  • Xamarin shared projects are slightly restrictive-- can only do shared code if it is implemented in each of the target platforms
  • Costs money to use for larger projects
  • No compatibility with Android Studios