Why should I make my next mobile app in Xamarin? #Part2: Xamarin.Forms

“Xamarin.Forms is a cross-platform natively backed UI toolkit abstraction that allows developers to easily create user interfaces that can be shared across Android, iOS, and Windows Phone. The user interfaces are rendered using the native controls of the target platform, allowing Xamarin.Forms applications to retain the appropriate look and feel for each platform.”

This is the definition of what currently are Xamarin.Forms, found in the Xamarin website.

What platforms does the technology support?

The very last platform compatibility was announced just today, and in fact it’s still considered an Early Preview.

Xamarin.Forms has been updated constantly, almost weekly, over the last few months, and has been getting better and better over the time. Latest version currently available in nuget is 1.4.0.6341. https://www.nuget.org/packages/Xamarin.Forms/

Xamarin.Forms is a framework that allows developers to rapidly create cross platform user interfaces. It provides it’s own abstraction for the user interface that will be rendered using native controls on iOS, Android, or Windows Phone. This means that applications can share a large portion of their user interface code and still retain the native look and feel of the target platform.

Xamarin.Forms are written in C# and allow for rapid prototyping of applications that can evolve over time to complex applications. Because Xamarin.Form applications are native applications, they do not have the limitations of other toolkits such as browser sandboxing, limited APIs, or poor performance. Applications written using Xamarin.Forms are able to utilize any of the API’s or features of the underlying platform, such as (but not limited to) CoreMotion, PassKit, and StoreKit on iOS; NFC and Google Play Services on Android; and Tiles on Windows Phone. This also means it is possible to create applications that will have parts of their user interface created with Xamarin.Forms while other parts are created using the native UI toolkit.

Xamarin.Forms applications are architected in the same way as traditional cross-platform applications. The most common approach is to use Portable Libraries or Shared Projects to house the shared code, and then create platform specific applications that will consume the shared code.

There are two techniques to create user interfaces in Xamarin.Forms. The first one is to create UI views entirely with source code using the rich API provided by Xamarin.Forms. The other option available is to use Extensible Application Markup Language (XAML), a declarative markup language from Microsoft that is used to describe user interfaces. The user interface itself is defined in an XML file using the XAML syntax, while run time behaviour is defined in a separate code-behind file. To learn more about XAML, please read Microsoft’s XAML Overview documentation on What is XAML.