Xamarin Forms uno para todos !!!

Hace unos meses que estoy trabajando en un proyecto con Xamarin Forms y creo que es buen momento para empezar a hacer una serie de entradas sobre el tema y explicar mi experiencia utilizando esta plataforma.

Que es Xamarin

Xamarin es una plataforma que nos permite crear Apps nativas para iOS, Mac, Android, Windows Phone, Windows 8 y más. Además nos permite utilizar solo un lenguaje de programación “C#” y  reducir tanto los perfiles como la cantidad de equipos involucrados en el desarrollo.

Ventajas

  • Aplicaciones 100% nativas
    • Interfaces Nativas
    • Acceso a la API nativa del dispositivo
    • Rendimiento 100% nativo
  • Un solo lenguaje de programación C#
  • IDEs sencillos
    • Xamarin Studio: IDE propio
    • Visual Studio
  • Código compartido
    • el 100% de la lógica de negocio puede compartirse entre las plataformas
    • Técnicas para compartir el código:
      • Proyectos compartidos: podemos utilizar directivas de compilación #if para utilizar dependiendo de las necesidades específicas de la plataforma.
      • PCL “Portable Class Library”: librerías .NET compatibles con diferentes plataformas.
      • Xamarin.Forms: nos permite crear interfaces nativas con más de 40 controles compatibles.

Arquitectura Xamarin Clásica

La forma de plantear el diseño de la App tenía que ser parecido a este:

xamarin_old

  1. Core Library:  Xamarin nos proporciona la posibilidad de crear código compartido en C# para reutilizar en todas las plataformas, Este código podríamos tener  toda la lógica de negocio, la capa de acceso a datos y la capa de servicios. De esta manera solo tendremos una librería donde poner nuestra lógica y reducir el código repetido y facilitar el mantenimiento.
  2. Specific Platform layer: Aunque utilicemos código compartido siempre necesitaremos acceder a utilidades nativas de la plataforma y crear un interfaz de usuario específico para cada plataforma.

Sigue leyendo