When setting up a software project you always have to start by choosing technology that complies with a series of premises such as, for example, knowledge of the system, the learning curve or that the transfer to the next system will be done in the most efficient way possible.

The development of mobile applications is not exception and in our case, we have chosen Xamarin to carry out this task, since it gives us the opportunity to create applications with the same capabilities as if we were developing them in their native language, but with the opportunity to use the same language and architecture for all platforms.

Native development requires specialized systems for each platform, using a programming language for each of them and different design patterns. However, with Xamarin we can share the core of our application by creating applications in its Classic version or by directly sharing the user interface using Xamarin Forms, which allows us to create the same interface for different platforms using a single language and maintaining each one of their styles.

Xamarin Forms allows us to make agile developments and if we add ReactiveUi, we have a set of tools that provide us with applications that are both simple to maintain and extend.

With ReactiveUi we simplify the creation of the core, we increase readability and therefore, we improve the maintainability of our applications, with the resulting long term cost savings.

To achieve this, ReactiveUi makes use of “Functional reactive programming”, which means that we can tell our code what to do and not how to do it, which is normal in the development with other libraries. This simplifies the code and helps a lot in maintenance, extension or in the transfer to the next system.

In conclusion, sharing the code of the user interface using Xamarin Forms and creating the core of our application with ReactiveUi, allows us to create easily maintainable, extensible applications and improve their costs.


Written by: Dario Alonso.