Xamarin is a C# based solution for cross platform apps development. Using the capabilities of C# and wrapping all native iOS and Android libraries allows Xamarin to make changes, over the course of the project lifetime, and making improvements to the application rather quickly. The code base is shared so the main effort needs to be focused on UI implementation for different platforms.Since all the native features are supported in the end apps are looking and perfrom in a native way.
Other Major CrossPlatforms Are PhoneGap and Titanium.
Xamarin is the right choice over PhoneGap with following advantages.
- Xamarin gives near native performance and 20% of fortune 500 companies using Xamarin.
•Code sharing between iOS, Android, various windows flavors.
•It provides an easy and cost effective entry into iOS and Android for .Net/ C# developers.
- Xamarin has TestCloud which allows you to test your apps automatically.
- Support for LINQ (ease to access DB entity).
- Provides 100% code reuse with Xamarin.Forms UI development using shared code base and logic. This saves a lot of time and resources .
- Supports patterns like MVC and MVVM.
- Xamarin.Android supports Google Glass devices, Android Wear, and Firephone .
- Learning curve is relative. If your team knows C#, it is comparatively easy to get started with Xamarin.
The Major Reasons Are
Major IDE enhancements
Improved code sharing:
Xamarin 3 introduces two great new code sharing techniques for cross-platform apps:
Shared Projects provide a simple, clean approach to code sharing for cross-platform application developers. Xamarin developers can now use Shared Projects to share code across iOS, Android, and Windows in either Xamarin Studio or Visual Studio.
•Portable Class Libraries
Portable Class Libraries are libraries that are consumable across a diverse range of .NET platforms. Xamarin 3 can both produce and consume PCLs from both Xamarin Studio and Visual Studio.
Xamarin binds the same APIs and UI controls that are used to build iOS, Android and Mac apps in their respective platform specific languages. For Windows development, Xamarin with Microsoft Visual Studio offers Windows Phone and Windows 8 applications. Code can be shared between iOS, Android and Windows using Portable Class Libraries (PCL) and appropriate application architecture.
Native User Interfaces
Xamarin apps are built with standard, native user interface controls. Apps not only look the way the end user expects, they behave that way too.
Native API Access
Xamarin apps have access to the full spectrum of functionality exposed by the underlying platform and device, including platform-specific capabilities like iBeacons and Android Fragments.
Xamarin apps leverage platform-specific hardware acceleration, and are compiled for native performance. This can’t be achieved with solutions that interpret code at runtime.
Xamarin Component Store https://components.xamarin.com/
Xamarin Components provide a variety of different components to use inXamarin.iOS and Xamarin.Androidapplications. Components range from user interface controls to code libraries, as well as user interface themes. They allow applications built on Xamarin to create rich user experiences and integrate with many different third party services with very little work.
In this article, we’ll look at how to include a component in a project and demonstrate the tool chain that makes the process seamless.
Advantages of C#
More Types, Less Typing
C# uses type inference to give developers more safety in fewer keystrokes, without boilerplate or verbose type annotations.
Asynchronous programming (async) keeps apps responsive. In Objective-C, Swift and Java, async requires callbacks and manual bookkeeping. C#’s language-level support makes async a breeze
Stronger Types, Smarter Tools
Generics guarantee that collections and other compound types are used safely, without the need for casts or comments. Xamarin tools understand intent better thanks to richer types, with benefits like ubiquitous code completion.
In Java for Android, lambdas are unavailable. In Objective-C, lambdas are extremely cumbersome. In C#, lambdas couldn’t be simpler, making functional programmers feel right at home.
Shared app logic
Xamarin is the new king of cross-platform development. The rich features and the resulting benefits of Xamarin all point towards flawless cross-platform native applications. In addition to the above-mentioned five reasons, Xamarin boasts an ever-growing community of 700,000 plus developers who are continuously collaborating and enhancing the software.