Xamarin- The Good, The Bad and The Ugly
Mobile applications are on a rise! Hence developers prefer building native mobile applications that offer the fastest, most reliable and most responsive experience to users. But what next, business now wants to have a mobile app run across major platforms such as Android, iOS and Windows devices. Therefore we can see that there is a steep rise in cross platform mobile apps.
- Statistics released by ‘Dot Com Infoway’ showed that about 83% of developers utilized cross platforms tools. Mainly for the initiatives like development, analytics, crash reporting and testing.
Challenges for develop cross platform apps
Owing to its multi-platform functionality, reduced development time and application performance it has become the “The Choice for the developers” for building cross platform mobile applications. We can say without a doubt that cross platform will become more robust in the near future;
We are in the development of cross platform apps since 4 years and have been working on multiple platforms such as PhoneGap, Xamarin ,Sencha Touch, Monocross and Appcelerator for building Android, iOS and Windows apps.
In this blog we are sharing few insights about why Xamarin has become the most preferred choice for mobile app developers.
Xamarin – The Good
Xamarin architecture consists of visual design platform to develop native like applications, testing suites, native library support and a nugget style component store. Recently i OS visual design have also been provided through their IDE for helping developers from requiring opening X-Code.
LINQ can be used with collections as well as create custom delegates and events that free developers from Objective-C and Java limitations.
Xamarin aims to be the framework that can cover all major mobile platforms- iOS, Android and Windows without compromising on quality and performance as expected from native apps development. Well known mature .NET framework libraries are available on Android and iOS platforms as well. The rich features of these libraries give an added advantage to Xamarin considering the developer view point.
Simplified and Faster Development
Xamarin simplifies code sharing across platforms. It provides the benefits of native UI helping in retaining the features of native application development. Having C# as the development language, it enables the developer to use the rich features. (You can modify if needed. We need to mention c# here.)
Share code everywhere
One of the greatest benefits of using Xamarin is that it allows creating Android, iOS and Windows phone applications sharing the same C# code base. Code reusability can be improved to about 80%. Now with Xamarin Forms, we can achieve 96% reusability on a project.
Portable Class Libraries
Through Portable Class libraries or PCL, developers can write the code in libraries which can be further shared across Xamarin. iOS, Xamarin Android and Windows Phone. Popular portable class Libraries (PCLs) like SQLite, Json.NET, or Reactive UI can be used on every platform. You can build your own app logic as a PCL and use it everywhere.
Xamarin Component Store allows adding high-quality components to your app directly from your IDE, including UI controls, charts, graphs, web service, beautiful themes, cloud services, APIs and more. It is integrated with Xamarin studio and visual studio so that the components can be easily added to your apps.
With Xamarin Forms, interface design for all three platforms can be accomplished within its XAML-based framework. Xamarin.Forms includes more than 40 controls and layouts, which are mapped to native controls on runtime.
- Here’s a comparison table that shows differences between the 3 platforms
Xamarin license cost
Cost of Xamarin license is expensive to support large projects.
Incompatibility with latest version of various platforms
Like other cross platforms, Xamarin is built on the native iOS OS and framework. There is a delayed support for the latest platform updates for iOS, Android and Windows. In spite of having large team, Xamarin takes time to accommodate the OS changes for iOS and Android.
Limited Access to Open Source Libraries
It cannot use open source libraries that are popular on iOS / Android. Although .NET has its share of open source support
One of the major drawbacks is that some of the components have inadequate documentation. For example Java documentation, where it is difficult to understand how it is to be done on Xamarin.
Xamarin Community Support
There is very limited community support available for Xamarin. Forums, help support are not readily available for Xamarin users on the net.
Visual Studio Designer
The visual studio UI editor is not suitable for designing list views, working with fragments, or making something that will scale easily.
Here we are exploring Role of Xamarin in our Recent Project: Asset Management Application:
Manually tracking the asset information was a time consuming and tedious task for the client as the information needed to be tracked and noted each time for each asset. Therefore the client needed a system that will improve the asset management by providing an automated, systematic and accurate asset management application.
We proposed a solution to create an asset management application with an integrated RFID based Zebra 8500 reader that could scan the RFID tags. Each asset will be marked with an RFID tag and using the Zebra 8500 reader, the information about the asset will be retrieved and written on the RFID tag.
- We developed an automated asset management application using RFID technology. To integrate the reader with the application, we used native SDK provided by the manufacturer. The application was built using Xamarin forms and the reader SDK was in Objective-C. To communicate to Objective-C from C# code, we used Sharpie tool which created intermediate definitions for Obj-C code and provided the bridge we required.
- Xamarin forms was used to achieve code reusability. We have effectively achieved almost 85% code re-usability. In spite of limited control support in Xamarin forms, we could modify the controls using custom renderers. The entire business logic was written in PCL which provided a decent level of abstraction to UI.
Xamarin has emerged as one of the most powerful tool for cross platform development hence is able to reach billions of smart devices irrespective of the platform. We recommend Xamarin as it ensures flawless building of cross platform applications as it utilizes the power of C# and provides wrapping of all native and iOS libraries. With no doubt we can say Xamarin has become the “The Choice” for the business due to its Seamless API Integration Capability, Easy Collaboration & Sharing, rapid development and Cost efficiency capabilities