xamarin 2019XAMARIN

Escribir código una vez y utilizarlo en múltiples plataformas ha sido un sueño para muchos desarrolladores software. Aunque esto ha sido posible desde hace un tiempo, siempre ponía en riesgo el mantenimiento, facilidad de prueba o peor, una mala experiencia de usuario.

Desarrollar aplicaciones móviles usando el nativo SDK es, probablemente, el punto de partida para muchos desarrolladores quienes tienen sus raíces en el reino de desarrollo de aplicaciones para escritorio. Programar idiomas sería una barrera para algunos: Si alguien tuviera experiencia en el desarrollo de escritorio Java o aplicaciones back-end, pasar a Android podría ser más fácil que comenzar con Objective-C desde cero para iOS. Hasta que se descubrió Xamarin:

¿Qué es Xamarin?

Xamarin es una plataforma de desarrollo que te permite escribir aplicaciones multiplataforma—aunque nativa—para iOS, Android y Windows Phone en C# y .NET. Xamarin proporciona bindings C# a las API nativas Android y iOS. Esto te da el poder para usar toda la interfaz de usuario nativo, notificaciones, gráficos, animación y otras características de teléfono— y todas usan C#.

Xamarin alcanza cada lanzamiento nuevo de Android y iOS, con un lanzamiento que incluye bindings para sus nuevas API.

El puerto de .NET de Xamarin incluye características como tipos de data, genéricos, colección de papelera de reciclaje, language-integrated query (LINQ), patrón de programación asincrónica, delegación y un subconjunto de Windows Communication Foundation (WCF). Las bibliotecas son manejadas con un linger para incluir sólo los componentes referidos.

Xamarin.Forms es una capa que se encuentra sobre las otros bindings UI y la API Windows Phone, la cual proporciona una biblioteca de interfaz de usuario completamente multiplataforma.

 

Escribir Aplicaciones Multiplataforma

Para poder escribir aplicaciones multiplataforma con Xamarin, los desarrolladores necesitan escoger uno de los dos tipos de proyecto disponibles:

  • Portable Class Library(PCL)
  • Proyecto Compartido

El PCL te permite escribir código que se puede compartir entre plataformas múltiples pero con una limitante. Dado que no todas las API .NET están disponibles en todas las plataformas, con un proyecto PLC, lo estarás limitando a ser ejecutado solo en plataformas para las que está dirigido.

La tabla de abajo muestra cuales API están disponibles en qué plataformas:

Feature

.NET Framework

Windows Store Apps

Silverlight

Windows Phone

Xamarin

Core

Y

Y

Y

Y

Y

LINQ

Y

Y

Y

Y

Y

IQueryable

Y

Y

Y

7.5+

Y

Serialization

Y

Y

Y

Y

Y

Data Annotations

4.0.3+

Y

Y

Y

Y

Durante el proceso de construcción, un PCL se compila en distintos DLL y se carga por Mono durante la ejecución. Una implementación diferente, pero de la misma interfaz se puede proporcionar durante la ejecución.

Por otra parte, los proyectos compartidos te dan más control, porque te permiten escribir código de plataforma específica para cada plataforma que quieras apoyar. El código en un proyecto compartido puede contener directivas de conversión de datos que activarán o desactivarán secciones de código, dependiendo de qué proyecto de aplicación está usando el código.

A diferencia de un PCL, un proyecto compartido no produce ningún DLL. El código está incluido directamente en el proyecto final.