Xamarin, el caballo ganador en el desarrollo multiplataforma nativo
Miguel A. Gómez Colaboraciones 25/11/2016
Este artículo es el primero de una serie de entradas relacionadas con el desarrollo multiplataforma nativo con las tecnologías de Xamarin, en particular con Xamarin tradicional.
Desarrollar aplicaciones móviles para múltiples plataformas es un enorme reto para los programadores. El contexto del desarrollo multiplataforma es muy complejo, ya que te encontrarás con varios lenguajes programación y sus correspondientes SDKs, además de múltiples entornos de desarrollo.
Las claves de Xamarin
-
Actualizaciones constantes: Xamarin actualiza sus librerías casi el mismo día que lo hace Google o Apple.
-
Gratuito y open source: Tras la adquisición de Microsoft lo liberaron el código y lo distribuyen de forma gratuita.
-
Compartir código: Xamarin te ofrece diferentes herramientas para que pongas el foco en tratar de compartir la mayor cantidad de código entre plataformas.
-
Máxima cobertura de APIs iOS y Android: Disponemos de todas las APIs con el lenguaje C#. Cualquier cosa que se pueda hacer con Objective-C/Swift o Java, se puede hacer con C# y Xamarin.
-
Compilación nativa: Las aplicaciones creadas con Xamarin son totalmente nativas. En iOS compila directamente a código ensamblador ARM nativo, utilizando el enfoque Ahead Of Time (AOT). En cambio, en Android, el compilador de Xamarin pasa a lenguaje intermedio (IL), que luego pasa a ser compilado en “Just-In-Time (JIT)” para realizar el montaje nativo en el momento que se inicia la aplicación.
Primera elección, tradicional o Forms
Antes de empezar a desarrollar con Xamarin debes tener claro si usar Xamarin Tradicional (Xamarin.iOS y Xamarin.Android) o Xamarin Forms. En Xamarin tradicional, puedes compartir toda la lógica de la solución entre las diferentes plataformas, a excepción de la interfaz de usuario. Mientras que con Xamarin Forms, además de poder compartir la lógica permite compartir la interfaz de usuario, gracias a la capa de abstracción que añade sobre la UI.
Xamarin.Forms es la mejor opción cuando el proyecto requiere de menos especificidad en la UI y se hace más énfasis en compartir la mayor cantidad posible de código. En cambio, Xamarin tradicional es idóneo cuando se necesita un nivel muy elevado de personalización de la interfaz de usuario para cada una de las plataformas, siendo prioritario el nivel personalización de la interfaz que la cantidad de código compartido.
Xamarin tradicional
Cómo denota su nombre es la forma clásica de desarrollar aplicaciones en Xamarin. Solamente se pueden crear proyectos de código compartido dentro de en la capa de la lógica de negocio y en la de acceso a datos. En la capa de presentación tendrás proyectos separados para cada una de las plataformas objetivo, dichos proyectos están escritos en C# pero no se puede compartir código entre ellos.
Obviaré la plataforma Universal Windows Platform (UWP) y me centraré en Xamarin.Android y Xamarin.iOS.
Xamarin.Android
Xamarin.Android nos brinda el acceso completo a la API de Android, como he comentado, básicamente cualquier cosa que se pueda hacer con Java, se puede hacer con Xamarin y C#. La interfaces de usuario se crean utilizando AXML.
Las aplicaciones Xamarin.Android se desarrollan principalmente con las clases de tres librerías diferentes:
-
java.*. Ofrece wrappers en C# para todas las librerías de Android en Java.
-
android.*. Permite el acceso en código C# a todas las APIs de Android.
-
Mono.NET. Incluye prácticamente la mayoría de clases de .NET.
Xamarin.iOS
Xamarin.iOS ofrece el acceso completo a la API de iOS (Cocoa touch), al igual que Android con Java, cualquier cosa que se pueda hacer con Swift o Objective C, se puede hacer con Xamarin y C#. La interfaz de usuario se crea utilizando las vistas nativas de iOS, ya sean Storyboards o ficheros XIBs.
Xamarin.iOS pone a nuestro alcance componentes tanto de compilación como de ejecución:
-
Compilador C# para Mac.
-
Compilador nativo.
-
Servicio de ejecución (GC, verificador y validación de tipos, etc.).
- Librerías Core .NET.
Conclusión
En esta entrada he hecho una introducción de Xamarin en general, y en particular de Xamarin tradicional. La idea es continuar avanzando en próximas entradas en el desarrollo de aplicaciones con Xamarin tradicional, tanto con Xamarin.Android como con Xamarin.iOS.
Espero haber despertado tu interés en Xamarin, o por lo menos haber sabido trasladarte alguna de sus virtudes. Para continuar profundizando en Xamarin te recomiendo el libro Mastering Cross-Platform Development with Xamarin y si te apetece probar Xamarin Forms échale un vistazo este artículo de introducción a Xamarin Forms.
Si te ha gustado la entrada comparte en tus redes sociales. No dudes en comentar dudas, aportes o sugerencias, estaré encantado de responder.