You are on page 1of 9

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
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.

Advantages
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.

Component Store
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.
Xamarins Forms

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.
Xamarins Edge
Heres a comparison table that shows differences between the 3
platforms
The Bad
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
The Ugly
Component documentation
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.

Conclusion
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

You might also like