Xamarin.Forms – mobile revolution

Authors: Tomasz Soroka

14.06.2016

Have you ever imagined a world where developing one code you will enable you to create an application for Adroid, iOS and Windows Phone platforms all at once? Will the differences among platforms pose any limitations? Is Xamarin Forms only a new trend or a technology which will change the future of mobile applications? It is said that the devil is in the details, so let’s start from the beginning.

First step to the future - Xamarin 

The technical advantage of the Xamarin company is that it allows to develop advanced mobile applications much faster and at lower costs than when it comes to the traditional approach in which an application for each platform needs to be developed by means of given native languages. In the IOS system it is Objective-C or Swift, in Android Java is used, and while developing an application dedicated to  Windows 10 C# is the native language applied.



Xamarin enables to create fully native application dedicated to all the three platforms using one technology – one programming language. What is more,  the efficiency of the applications developed by means of Xamarin technology is similar to the ones developed in each respective native languages.

 The traditional approach with Xamarin means developing a part of an application in C# and then connecting it with application interfaces across all our target platforms.  



It allows to share about 40-70% of code depending on the complexity and type of the application as well as the approach that was used in developing the application. The most popular is MvvmCross framework which allows to share the code to view level of the models.

Xamarin.Forms - one code to rule them all

For some time now, the Xamarin company has been working on an innovative technology called Xamarin.Forms which enables to achieve higher level of code sharing – even up to 97-99% of shared code.



Because of the obvious benefits (mainly business benefits) that this innovative technology may bring, Leaware company has been passionately interested and closely following this new solution. Owing to extensive experience in developing mobile applications we are able to define what type of mobile projects can be developed by means of Xamarin.Forms.

 The aforementioned technology is a perfect solution for:

  • Prototypes and proofs-of-concept
  • Applications that require little platform-specific functionality
  • Data entry applications


Is that all that Xamarin.Forms has to offer? 

Of course not! The existing version of Xamarin.Forms is 2.2, however the new ‘2.3’ version is being developed. The updated version will contain new functionalities, like for instance CarouselPage.

With the release of the new updated 2.3 version things will be significantly improved. The Xamarin company has put a great effort to improve the most significant defects of this technology and it seems that it is becoming more and more useful when it comes to developing more advanced and complex projects.

There were problems with such functionalities like complex lists, complex views and data or template access. However, the most important is the fact that the release ten works a lot faster than in the previous version.

With all those improvements the level of code sharing still holds the impressive level of 97-99%! What it means is that the cost of developing a mobile application for all platforms, also including Windows 10 continuum, may be 3 times lower than with the use of the traditional approach.  

It is worth noting that we not only develop a high quality code with a very good architecture but also gain the code which is easier to maintain or develop in comparison with native applications projects.

What projects is Xamarin.Forms for? 

After a long and detailed analysis and brainstorm we have concluded that this technology is suitable for the majority of business type applications. Of course, before commencing a project with the use of this technology we will carefully assess the characteristics of the application and the limitations this technology may bring.


User interface

Apart from its obvious benefits, with Xamarin.Forms you need to be prepared for some compromise. In this technology we cannot fully control the appearance of the screens as it is with the use of  MvvmCross, however the interface is created much faster. If the clients are willing to compromise and are aware that they is being given an efficient but less expensive application, which takes less time to develop, it won’t be a problem to reach compromise in the course of  developing a project.



What if we would like to implement a change in only one of the platforms? Xamarin.Forms gives you the possibility to implement own, individual styles by means of so called  custom renderers.



Efficiency

The efficiency of applications developed by means of Xamarin.Forms is not significantly different from the ones developed with the use of native approach, however you need to be prepared for some compromise. It mainly relates to the manner of developing some components of the application in order to make use of the best features of this technology.  


In our opinion 

Xamarin.Forms is a technology which, from the business point of view, enables to significantly reduce the costs of developing mobile applications across different platforms.

The costs of developing an application for 3 platforms is a significant factor. However, it is not only cost-efficiency that contributes to the competitive advantage of this technology, but also the time needed for developing the application. Another advantage is developing and maintaining mobile applications with Xamarin.Forms as with this technology the applications are implemented only once.

Taking into consideration minor compromises connected with creating user interface and efficiency, it must be concluded that Xamarin.Forms is a very appealing technology for developing mobile applications and it is worth to start using it straightaway!

Sample mobile application developed by means of Xamarin.Forms technology

It is worth to get familiar with one of the applications prepared by Xamarin for the conference Xamarin Evolve 2016.

The application is available for the following platforms:

IOS - https://itunes.apple.com/us/app/xamarin-evolve/id618319027
Android - https://play.google.com/store/apps/details?id=com.xamarin.xamarinevolve
Windows - https://www.microsoft.com/en-us/store/apps/xamarin-evolve/9nblggh0ff9k

Source code for the application can be found below:

https://github.com/xamarinhq/app-evolve


A video demonstrating how the application works can be found:

https://blog.xamarin.com/download-the-xamarin-evolve-2016-conference-app/

As well as working quickly and efficiently, the applications developed by means of Xamarin.Forms also have modern user interface and can communicate with external API.

What is particularly important is how quickly the list works. As it can be noticed below the interface perfectly matches each platform:


If You have any questions regarding Xamarin Forms technology, feel free to ask Us!