Desde la aparición de los smartphones y las tiendas de móviles, las empresas han ido evolucionando para estar presentes en este sector ya sea con sus productos en forma de Apps o con simples aplicaciones a modo de presentación de ellas mismas. Debido a la heterogeneidad en las diferentes tiendas, hay que hacer desarrollos específicos para cada una de las plataformas o, al menos las más populares y diferentes entre sí como son Windows Phone (ahora Windows 10), iOS, Android e incluso Blackberry, con el sobrecoste que conlleva además de la dificultad para encontrar desarrolladores que dominen todas las plataformas (pocos o ninguno).
Es en este sentido donde cobran gran importancia las plataformas de desarrollo multiplataforma como PhoneGap, Cordova (basado en el anterior)… que usan HTML5 como base fundamental pero que presentan el problema de la comunicación con el dispositivo en sí. Esto provocaba que, al final, hubiera que desarrollar módulos específicos para cada plataforma/dispositivo y así poder usar por ejemplo la cámara, con lo que al final teníamos aplicaciones híbridas.
Finalmente, la aparición de Xamarin classic y, sobre todo, Xamarin Forms en la que se centra este artículo, nos facilita la vida ya que compila código nativo y nos permite realizar aplicaciones multiplataforma con un único desarrollo e incluso sin tener que escribir código nativo de cada plataforma.
En el caso de Xamarin.Forms, es posible crear aplicaciones multiplataforma muy rápidamente con el estilo por defecto de cada plataforma. En caso de querer personalizar los estilos la cosa se complica un poco pero no es imposible, requiriendo que tengamos que bajar a las “minas” a escribir código y crear controles o modificar la renderización de los ya existentes para lograr el aspecto deseado como por ejemplo si queremos que la aplicación se vea igual en todas las plataformas.
Primeros pasos
Lo primero es tener una cuenta de Xamarin, que nos permite usar una trial de 30 días para probar. Después habrá que descargarse Xamarin Studio o, si tenemos Visual Studio 2015 ya podremos instalarnos las herramientas de desarrollador de Xamarin.Forms.
Creando la primera aplicación
Para escenificar el artículo usaré Visual Studio 2015, por lo tanto, los pasos a seguir son: crear nuevo proyecto y seleccionar del grupo “Mobile Apps” la plantilla Blank App (Xamarin.Forms [Portable|Shared]) de las que recomiendo usar la de tipo portable.
Una vez creado el proyecto, en Visual Studio nos pedirá las credenciales de la cuenta de Xamarin para evaluar la licencia de uso y, posteriormente, un Wizard para conectar con un Mac para poder realizar la compilación del proyecto para iOS y así poder testearlo. Si no tenemos uno disponible, simplemente debemos cancelar.
Probando el proyecto
Una vez hemos creado la solución, tendremos disponibles, la librería portable (PCL) y los proyectos relativos a cada plataforma, Android à Droid, iOS y WinPhone à Windows Phone.
Llegados a este punto podemos ejecutar la aplicación en nuestros emuladores y comprobar que funciona en todos ellos.
En el proyecto de la librería Portable es donde debemos escribir todo el código común que, con bastante probabilidad y si la aplicación no es de extrema complejidad o de diseño muy extravagante, será el único proyecto en el que tengamos que escribir código a excepción de las instrucciones “Init” de los SDKs que podamos querer usar como por ejemplo Azure Mobile Services que habrá que inicializarlo en iOS y Android. Asimismo, las vistas pueden ser comunes y sólo en algunos casos será necesario hacer uso de “Custom Renderers” para modificar el comportamiento por defecto de algunos controles.
Resumen
En mi opinión, Xamarin.Forms es una gran opción para el desarrollo de aplicaciones multiplataforma pese a que su curva de aprendizaje, dado que a veces hay que hacer trabajo a menos alto nivel, es alta y pasando por alto que el producto está, desde mi punto de vista, aún verde. Gracias a Xamarin.Forms, podremos tener nuestras Apps en el mercado, al menos en las tres tiendas de Apps más populares, en un tiempo bastante reducido que, con la experiencia se reducirá aún más, logrando ser productivos y muy rentables en un tiempo razonable de aprendizaje.
Por lo tanto, y como conclusión, no sólo NO es una locura usar Xamarin.Forms para desarrollarlo aplicaciones multiplataforma sino que debe estar en el punto de mira de las empresas de desarrollo de Apps y/o Servicios porque mejorará sus tiempos de producción y la experiencia de sus usuarios con sólo un poco de inversión en formación.
El siguiente nivel está en la “Universidad Xamarin”, pero esto ya es hablar de retos mayores. Aunque supondría convertirse en expertos en Xamarin y, por lo tanto, sacar el mayor rendimiento posible al desarrollo multiplataforma y conseguir ofrecer a los usuarios las mejores Apps en todas las plataformas.