An Introduction to Xamarin.Forms
What is Xamarin.Forms
Xamarin.Forms is an API that allows C# designers an easy method for developing cross platform applications. Xamarin.Forms enables users to create pages that represent a single screen within their app where upon they can add controls such as buttons, textboxes, lists, and so forth. These controls can then be connected to a shared C# back-end while the front-end maps to specific native user interface elements for iOS, Android, and Windows Phone when the application is run. This development model has the benefit of being independent of any specific platform thus allowing you to write code once in C# and create applications for iOS, Android, and Windows Phone.
Development using Xamarin.Forms
Applications developed in Xamarin.Forms are architected in a similar manner to traditional cross-platform applications in that, generally, they consist of a Portable Library or Shared Project that houses common shared code with platform specific applications that will then be able to consume this shared code. User interfaces can either be created entirely in code using the API provided by Xamarin.Forms or written as declarative markup in XAML. Xamarin.Forms brings with it a unique API with its own terminology and classes. The API provides the following: Views – These are often referred to as controls on other platforms and represent the UI elements users will interact with. They encompass elements such as listviews, labels, buttons, etc. This is where Xuni fits into the picture by providing controls such as charts, gauges, and eventually grids and other controls. Pages – A page represents a single screen in your application, and thus corresponds to an iOS View Controller, Android Activity, or Page in Windows Phone. Layouts – Layouts are containers for Views or other Layouts. They generally contain information for graphically organizing the elements contained within (for example dictating relative or absolute postioning).
Why Use Xamarin.Forms
The most obvious benefit is the ability to code once to rapidly create applications for multiple platforms. Since Xamarin.Forms applications are native applications they are fully featured, and they operate at a high level of performance. Furthermore, Xamarin.Forms allows a company with a high level of expertise and investment in C# and the .NET platform a direct path to transition into development for multiple mobile platforms. It also brings with it the benefit of applications which have the correct look and feel for their respective platforms, and in that regard compares favorably to the potential alternative of web applications which may have a similar reach, but do not fully capture the feel of the native interface or allow the same breadth of features. Xamarin.Forms and Xuni together will bring a rich, native experience to a broad audience. Xuni enables the average C# developer to code once using familiar controls and quickly provide enterprise level apps for a variety of devices.