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