Nos es extraño que, tras insistentes rumores de compra en los últimos años, el 24 de febrero corriera como la pólvora una de las noticias del año, Microsoft adquiere Xamarin.
Con la compra de Xamarin, que a falta de datos concretos se estipula entorno a los $400-$500 millones, Microsoft realiza una apuesta absoluta por la multi-plataforma, dando un paso gigante en sus intenciones. Ofrecer una suite completa, sólida y cubriendo cada uno de los aspectos relacionados con la creación de aplicaciones para las distintas plataformas es el gran objetivo. No cabe duda de que supondrá un gran impulso de las posibilidades ya ofrecidas por Xamarin, así como una ganancia y crecimiento enorme en Visual Studio, Visual Studio Team Services y Azure.
¿Qué es Xamarin?
Xamarin en pocos años se ha convertido en una opción sólida y con gran peso para poder crear aplicaciones móviles multiplataforma: crear una aplicación que funcione en iOS, Android y Windows Phone.
El beneficio principal de Xamarin es la posibilidad de desarrollar aplicaciones móviles basándose en la plataforma .NET y el lenguaje C#, y compartir grandes cantidades de código entre diferentes plataformas, así como la posibilidad de utilizar un mismo IDE (Entorno Integrado de Desarrollo).
Además, debemos sumar el esfuerzo incesante de la empresa por ofrecer una solución completa a cada paso requerido en el desarrollo móvil, y que no se centra tan solo en el desarrollo propiamente dicho. Encontramos así las herramientas de diagnóstico como Xamarin Profiler o Xamarin Inspector, las tan importantes analíticas con HockeyApp o herramientas destinadas a mejorar la calidad de la aplicación como Xamarin Test Recorder y la potente herramienta en la nube Xamarin Test Cloud.
Por último, también es destacable su esfuerzo en capacitación y certificaciones con Xamarin University y el crecimiento constante de la comunidad.
Los más de 1.3 millones de desarrolladores confirman las posibilidades e interés generado por la plataforma.
¿Qué esperar de la compra?
Mucho se ha especulado en el corto periodo transcurrido desde la compra hasta hoy. La noticia ha sido tomada con enorme aceptación y expectación por la comunidad de desarrolladores. Sin embargo, ¿qué implicaciones tiene la compra?, ¿qué podemos esperar de la misma?
Hemos decido realizar un recorrido por cada una de las herramientas y aspectos de Xamarin para discutir y analizar cuáles podrían ser las posibilidades.
ENTORNOS DE DESARROLLO.
La integración con Visual Studio ha ido evolucionando en los últimos tiempos teniendo un gran impulso desde el partnership entre Xamarin y Microsoft. Poco a poco iban llegando novedades como editores visuales y mejoras constantes o el perfeccionamiento del Mac Build Host (uso de un Mac remoto para compilar desde Windows), así como la introducción directa de Xamarin en el proceso de instalación de la última versión de Visual Studio.
Por otro lado, para el desarrollo de iOS es necesario un Mac. En OSX, la evolución de Xamarin Studio ha sido notoria. Una evolución constante desde la creación de proyectos, a la gestión de paquetes y complementos, así como en el propio editor tanto visual como de código.
Continuar, potenciar y mejorar la integración de Xamarin en Visual Studio parece que será una consecuencia clara de la adquisición por parte de Microsoft además del añadido de ciertas herramientas extras de las que hablaremos a continuación, pero… ¿qué ocurrirá con Xamarin Studio?
Esperamos que todo el trabajo de Xamarin Studio no se pierda. Además seguimos viendo necesario dar soporte a todos esos desarrolladores existentes de Xamarin que están utilizando OSX. Microsoft ya cuenta con Visual Studio Code para OSX y ahora tiene soporte a extensiones. ¿Mantendrá Microsoft Xamarin Studio junto a Visual Studio Code? No parece lo más obvio, estamos ansiosos por saber que ocurrirá en este punto, pero posiblemente se mantendrá Xamarin Studio a corto plazo potenciando Code como opción para el desarrollo multiplataforma con .NET en OSX.
XAMARIN CLASSIC – XAMARIN FORMS
Xamarin Classic. Vistas nativas y código común en C# de la lógica de negocio de aplicación compartido. Sin duda cabe esperar la continuidad y evolución continua.
Xamarin Forms. Añade capa de abstracción sobre la interfaz de usuario permitiendo escribir la interfaz una única vez con código XAML. Con una evolución constante y meritoria, en las últimas versiones se han alcanzado cuotas de madurez más elevada. Opciones como la compilación de XAML, ControlTemplates, DataTemplateSelectors, etc… aumentan las posibilidades.
Tenemos dudas en el enfoque que Microsoft podría dar en este punto. Por un lado, se podría continuar el camino establecido continuando con la evolución de Xamarin.Forms. Potenciar posibilidades, añadiendo más opciones específicas en XAML, en herramientas como el ansiado editor visual, etc.
Pero quizás Microsoft quiera ir algo más allá, más lejos. Actualmente y tras un largo y costoso camino en la convergencia de sus plataformas, Microsoft cuenta con la UWP, Universal Windows Platform. Desarrollar una aplicación con la posibilidad de compartir prácticamente la totalidad de la aplicación pudiendo acceder a distintas familias de dispositivos como teléfonos, tabletas, PCs, Xbox One o IoT con Windows 10 es un paso gigante. ¿Y si creciera gracias a Xamarin para incorporar más plataformas como Android o iOS?
Se tome el camino que se tome, no cabe duda de la aceptación e interés general por la opción, y tampoco tenemos duda en su evolución y crecimiento.
HERRAMIENTAS Y SERVICIOS.
En los últimos años, Xamarin, ha ido lanzando herramientas y servicios destinados a complementar y potenciar otros aspectos necesarios en el ciclo de gestión de una aplicación, que por supuesto va mucho más allá del propio desarrollo en sí. Aspectos como el análisis de rendimiento, inspección de la aplicación, analíticas o calidad y testing han sido abordados por diferentes herramientas y servicios.
¿Qué ocurrirá con ellos?
Creemos que prácticamente la mayoría de ellos serán reutilizados y/o reubicados en el IDE u otros servicios. Veámoslo por separado:
- Xamarin Profiler: Herramienta destinada a la gestión de análisis de rendimiento, consumo de memoria y CPU de nuestras aplicaciones Xamarin. Desde mejoras en estabilidad a nuevas opciones la herramienta ha ido evolucionando enormemente cubriendo un área necesaria y tremendamente útil. En Visual Studio, Microsoft cuenta con Profiler para plataformas como por ejemplo UWP. No sería de extrañar que acabásemos viendo integrado y potenciado Xamarin Profiler dentro de Visual Studio.
- HockeyApp: Destinado a obtener analíticas de uso e información de errores junto a otros aspectos de nuestra aplicación. Con la llegada de Xamarin 4 se potenció mediante la integración con diferentes servicios como Slack o Github. Microsoft cuenta con Application Insights y de nuevo, no sería extraño ver la integración de HockeyApp.
- Xamarin UITest, Test Recorder y Test Cloud: Cubren un aspecto importante, la automatización y búsqueda de la calidad de nuestras aplicaciones con pruebas automáticas del comportamiento. Podríamos ver a Test Recorder integrado en Visual Studio y la continuidad del soporte a UITest. Xamarin Test Cloud es un servicio en la nube que permite tener acceso para realizar pruebas en más de 2000 dispositivos diferentes. Sin duda, uno de los servicios más potentes y ambiciosos creados por Xamarin. No esperamos otra cosa que no sea su continuidad y mejora. El cambio quizás lógico sea su integración dentro de los ya extensos servicios ofrecidos por Microsoft en Azure.
- Xamarin Android Emulator: Emulador x86 con gran rendimiento disponible para Windows y OSX. Microsoft cuenta con su emulador Android desde la llegada de Visual Studio 2015. Parece complicada la convivencia de ambas opciones, pero esperamos que se tengan en cuenta las opciones disponibles en Xamarin Android Emulator no disponibles en el emulador Android de Visual Studio. Entre todas, la más compleja quizás sea la disponibilidad del mismo en OSX aunque esperamos que así sea.
MODELO DE NEGOCIO.
Hasta estos momentos Xamarin contaba con un modelo de negocio basado en subscripciones anuales o mensuales. Una barrera de entrada en muchos casos debido a los costes. El modelo clásico de Microsoft se basa en la integración de distintos servicios en las diferentes versiones de Visual Studio. Cabe recordar que Xamarin Starter ya venía incluido en la instalación de Visual Studio 2015. Por ello, y con el firme objetivo de potenciar las posibilidades de Visual Studio y atraer a la mayor cantidad de desarrolladores posibles, cabría esperar una versión mejorada a la Starter incluida en Visual Studio Community además de por supuesto contar con Xamarin incluido en las diferentes versiones de Visual Studio y las licencias MSDN.
OTROS ASPECTOS.
Certificación. Mediante Xamarin University se tiene acceso a la certificación de Xamarin. Microsoft cuenta también con certificaciones. No tenemos muy claro qué ocurrirá con Xamarin University pero probablemente se fomente el contenido Xamarin en los canales de formación de Microsoft y la certificación Xamarin pase a formar parte de certificaciones Microsoft.
Sea cual sea el camino tomado, desde CampusMVP estaremos preparados para ofrecerte la mejor preparación posible.
El Equipo. A la hora de apoyar a un proyecto, puede hacerse desde muchos lugares y puntos de vista diferentes, creándose así distintas comunidades o grupos con un objetivo común, mejorar Xamarin. Este gran equipo de profesionales estaría formado por:
- Los Partners de Xamarin. El sistema de partnership de Xamarin ha funcionado muy bien, y lo más probable es que se integre en el sistema de partners de Microsoft. Esperamos que ante el ajuste se tengan en cuenta todos los aspectos que funcionaban tan bien en Xamarin.
- MVPs de Xamarin, ¿qué ocurrirá con esta comunidad?. Suponemos que pasaran a ser MVPs de Microsoft. En programa de MVPs de Microsoft ha tenido cambios recientemente para adaptarse a los cambios en el mercado y tecnologías Microsoft. Ya existía una reciente categoría llamada “Visual Studio and Development Technologies” que contemplaba Xamarin como opción.
- El propio equipo que trabaja en Xamarin. Es de esperar, y es nuestro deseo, que el equipo de Xamarin se ajuste y acondicione en diferentes equipos de Microsoft. Así pues, equipos de desarrollo de Visual Studio continúen con mayor integración aun, evangelistas que tan buenas labores han realizado para dar a conocer las posibilidades pasen a ser evangelistas técnicos en Microsoft, etc.
- Desarrolladores. Creemos que con la compra de Xamarin por parte de Microsoft aumentará la confianza de desarrolladores a utilizar esta opción para acceder a otras plataformas, y también crecerá la confianza entre clientes y usuarios finales.
Estabilidad. El crecimiento de Xamarin como compañía ha sido espectacular en los últimos años. La ambición mostrada en las posibilidades ofrecidas en sus herramientas y servicios ha sido altísima y con una calidad general bastante buena, convirtiéndose en la opción más sólida de desarrollo multiplataforma existente. Sin embargo, la complejidad y variedades que conllevan Xamarin en sí, ha afectado en ocasiones a la estabilidad de releases y en detalles mejorables. La suma de Microsoft, con mayor potencial en equipo y por supuesto económicamente, sumado a la experiencia en revisiones y calidad, posiblemente afecte en una mejora en la estabilidad general.
Siempre al día. Ha sido una clave fundamental en el éxito de Xamarin. Ante el lanzamiento de wearables, AppleTV o actualizaciones del sistema en las diferentes plataformas, Xamarin en sus diferentes canales de distribución lanzaba alfas y betas con soporte a novedades de forma rápida e inmediata.
Xamarin a diferencia de Microsoft no era un “actor principal” en esta “película” del mercado móvil. Sin embargo, Microsoft ha tenido cambios significativos en los últimos años incluida su relación con otros “actores protagonistas” como Apple. Estos cambios añadidos al hecho de la simbiosis conseguida con Xamarin, no debería afectar en absoluto a tener acceso a previews y herramientas para continuar ofreciendo un soporte rápido ante novedades.
Estas son nuestras conjeturas y lo que esperamos del proceso. Resolveremos gran cantidad de dudas en el próximo //BUILD que se celebrará del 30 de marzo al 01 de abril y en el Evolve que tendrá lugar del 24 al 20 de abril. Sin duda, se avecinan emocionantes momentos para los desarrolladores utilizando C# y para el ecosistema .NET, ¿y vosotros que pensáis?, ¿qué esperáis de la compra?
Desde CampusMVP seguiremos informando.
Mientras tanto, puedes ir introduciéndote en la plataforma con nuestro curso de iniciación al desarrollo de aplicaciones para Android con Xamarin.