¿Qué significa migrar de Xamarin a MAUI para el desarrollo de aplicaciones?

Microsoft siempre está buscando las últimas tecnologías y herramientas disruptivas. El próximo paso importante de la compañía en la evolución de sus ofertas de desarrollo multiplataforma es MAUI. Pero, ¿qué es MAUI? ¿Está reemplazando a Xamarin? ¿Son tecnologías diferentes? Siga leyendo para averiguarlo.

Si has incursionado en el desarrollo de aplicaciones multiplataforma o eres un experto en ello, es posible que hayas trabajado con el ecosistema de desarrollo de Microsoft al menos una vez. Si este es el caso, entonces seguramente habrás oído hablar de Xamarin o trabajado con él. Este marco de desarrollo de aplicaciones multiplataforma se remonta a 2011, pero ha sido el estandarte de Microsoft dentro de la industria del desarrollo desde 2016 cuando lo adquirieron. 

En pocas palabras, Xamarin permite a los desarrolladores enviar aplicaciones que funcionan en todas las plataformas mediante código C# y Visual Studio. Además, funciona con una base de código compartida que permite a los desarrolladores escribir código una vez y reutilizar alrededor del 75 % para todas las plataformas y sistemas operativos. Gracias a estas y más características, Xamarin ha sido un elemento básico en la industria del desarrollo durante varios años. Sin embargo, ahora, Microsoft aparentemente ha cambiado las reglas del juego de desarrollo multiplataforma para siempre con la introducción de su último marco disruptivo. 

Durante décadas, Microsoft ha lanzado innumerables herramientas y tecnologías adicionales que han facilitado mucho el trabajo de los desarrolladores. Por lo tanto, podemos concluir con seguridad que, a las puertas de 2022, el próximo paso natural de los esfuerzos de desarrollo de aplicaciones de Microsoft es crear la próxima generación de marcos de desarrollo de aplicaciones multiplataforma. Pero, por casualidad, ¿estás pensando que lanzarán la próxima actualización para Xamarin? ¿Una especie de Xamarin 2022? Bueno, eso no es exactamente lo que Microsoft tenía en mente y, en su conferencia Build del 2020 , el gigante tecnológico presentó su nuevo marco para el desarrollo de aplicaciones multiplataforma: .Interfaz de usuario de la aplicación multiplataforma NET (.NET MAUI). 

Este artículo profundizará en qué es .NET MAUI, o simplemente MAUI, cómo afecta el desarrollo de aplicaciones de Xamarin, cuáles son las modificaciones más significativas en comparación con Xamarin y si debe migrar a MAUI y qué significa eso. 

¿Qué es .NET MAUI?

Como mencionamos anteriormente, Xamarin ha sido parte de la familia de desarrollo de aplicaciones durante más de una década. Para nosotros en Foonkie Monkey, ha jugado un papel decisivo en nuestras prácticas de desarrollo de aplicaciones multiplataforma. Y estamos seguros de que ese también ha sido el caso de muchos otros desarrolladores que han estado entregando con éxito aplicaciones innovadoras, disruptivas y sólidas a lo largo de los años. Finalmente, sin embargo, parece que ha llegado el momento de decir adiós a Xamarin y hola a MAUI. Pero, ¿eso es bueno o malo? Veamos.

MAUI, o .NET MAUI, como lo ha llamado oficialmente Microsoft, significa .NET Multi-platform App UI, y es un marco de desarrollo de aplicaciones multiplataforma de código abierto, escrito en C#, para crear aplicaciones móviles y de escritorio utilizando un solo , código base compartido. MAUI, cuya GA (disponibilidad general) no está programada hasta el segundo trimestre de 2022, se ejecuta en .NET6, la última versión de .NET, que se lanzó por completo en noviembre de 2021. NET es un marco gratuito, de código abierto y multiplataforma propiedad de Microsoft que permite a los desarrolladores crear diferentes tipos de aplicaciones, desde web e IoT hasta dispositivos móviles y de escritorio, utilizando varios idiomas, editores, y bibliotecas. 

NET6 ​​es la última evolución de la plataforma .NET. Combina todos los beneficios de sus predecesores para ofrecer un marco más rápido y eficiente que permite a los desarrolladores agregar códigos fuente y recursos más sólidos y capaces específicos para cada plataforma. Dicho esto, MAUI se ejecutará en el nuevo marco .NET6 para que los desarrolladores puedan usar una base de código única con recursos integrados para integrarse con las API nativas para todos los sistemas operativos (iOS, macOS, Android y Windows). Suena como un montón de campanas y silbatos, pero, esencialmente, MAUI es la próxima iteración de Xamarin, por lo que podemos decir que, en lugar de que Microsoft nos proporcione Xamarin 6, estamos obteniendo .NET MAUI. 

A primera vista, la intención de Microsoft con el lanzamiento de .NET MAUI es permitir a los desarrolladores crear una estructura de proyecto más simplificada. A diferencia de Xamarin, donde tenía que crear un proyecto para cada plataforma, con MAUI, solo tendrá que compilar la aplicación una vez, con una sola base de código y en un solo proyecto de Visual Studio que contendrá todos los recursos para apuntar a todos los dispositivos y plataformas compatibles. Y, si surge la necesidad, te permite agregar diferentes recursos y códigos fuente para diferentes plataformas. 

Además, con MAUI, también puede agrupar todas las API nativas en una sola vista y usarlas para compilar al apuntar a las compilaciones de cada plataforma. Además, puede agrupar todos los recursos que usará al crear la interfaz de usuario de su aplicación usando XAML, como imágenes y fuentes, por ejemplo. Como resultado, tiene un lugar donde todos los elementos de la aplicación están visibles y compilados, lo que le brinda un medio más efectivo para administrarlos. De esta manera, MAUI está configurado para reducir la complejidad de crear aplicaciones para múltiples plataformas y hacer que la experiencia de desarrollo general sea más accesible y agradable. 

En este punto, probablemente estés pensando, ¿es solo un cambio de nombre? ¿O es MAUI algo más que la versión de próxima generación de Xamarin? ¿Necesito cambiar TODO al migrar de Xamarin a MAUI? Bueno, MAUI en realidad ES más o menos una refundición de la pila de Xamarin, pero también es mucho más que eso. Así que veamos algo de lo que ha cambiado de Xamarin a MAUI para tratar de contextualizar lo que realmente significa migrar a MAUI para el desarrollo de aplicaciones.

De Xamarin a MAUI, ¿Qué ha cambiado?

Bueno, mucho. En primer lugar, con MAUI, Microsoft cumplirá su sueño (¿o el nuestro?) de incluir completamente Xamarin en .NET y consolidar todos los tiempos de ejecución, los SDK y las bibliotecas en una sola plataforma. Desde el primer día, Microsoft quería que Xamarin fuera parte de su experiencia de desarrollo unificada, pero la herramienta de desarrollo multiplataforma no se ha sentido como una parte integral del ecosistema .NET. Xamarin tiene cicatrices que Microsoft ha tratado de curar de todo corazón, lo cual es una gran parte de la razón por la que Xamarin ahora está destinado a "desaparecer". Además, Microsoft también quería que .NET con C# fuera el lenguaje dominante para la creación de aplicaciones, donde los desarrolladores de aplicaciones pueden codificar una vez y ejecutarlas en todas partes en un entorno unificado. Sin embargo, esta unificación solo podría tener lugar si Xamarin se integraba por completo en el universo .NET, que ha sido la ambición de Microsoft desde que compraron la plataforma hace unos seis años. 

Entonces, para lograr la unificación de Xamarin en un entorno de desarrollo global de .NET, Microsoft lo tomó, lo transformó y creó MAUI. También le inyectaron algunas características y funciones nuevas que harán que toda la experiencia del desarrollador sea mejor, más rápida y más escalable. 

Estos son los principales cambios que experimentará al migrar de Xamarin a MAUI.

1. MAUI aborda los problemas de rendimiento y tiempos de carga de la aplicación

Xamarin ha sido la solución preferida de innumerables desarrolladores para el desarrollo de aplicaciones multiplataforma durante varios años. Ha ayudado a ofrecer aplicaciones populares e innovadoras para organizaciones de clase mundial como Alaskan Airlines y The World Bank. ¡En Foonkie lo hemos usado durante años y tenemos que decir que nos encantan nuestras aplicaciones Xamarin! No obstante, debemos estar de acuerdo en que algunas aplicaciones creadas con Xamarin tienen problemas de rendimiento. Estos problemas se deben principalmente a la lentitud de los tiempos de carga de las aplicaciones y al tamaño considerable de las aplicaciones que produce Xamarin, que han sido preocupaciones constantes dentro de la comunidad de desarrolladores durante un tiempo.

Una de las razones de estos problemas de tiempos de carga es la arquitectura del renderizador de Xamarin. Los renderizadores no son piezas de código muy intuitivas que, bueno, constantemente controlan la pantalla en cada plataforma. De esta forma, los desarrolladores pueden crear renderizadores personalizados en Xamarin para garantizar que las aplicaciones conserven el aspecto adecuado para la plataforma respectiva en la que se ejecutarán. Sin embargo, los renderizadores son una gran molestia bajo ciertas condiciones y cuando se trabaja con un proyecto en particular, por lo que se están volviendo obsoletos de forma lenta pero segura. Con MAUI, Microsoft los reinicia y los llama controladores. No te preocupes; profundizaremos en los controladores más adelante. 

2. MAUI se ejecuta completamente en .NET

Con MAUI ejecutándose completamente en la última versión de .NET, .NET 6, Microsoft nos ha dado oficialmente la bienvenida al inicio de un .NET global y unificado. mundo para las prácticas modernas de desarrollo de aplicaciones, lo cual es enorme para nuestra industria. Como todos sabemos, Microsoft siempre ha priorizado la productividad de los desarrolladores. Ahora, con un entorno .NET global, los desarrolladores ya no tienen que navegar por innumerables variaciones de .NET como NET Core o Mono, para nombrar unos pocos. En ese sentido, Xamarin, que nunca se integró por completo con .NET, ahora será "absorbido", por así decirlo, en este marco universal recién descubierto. De esta manera, Xamarin finalmente será una parte integral de .NET en forma de MAUI. 

Además, con la tan esperada unificación de .NET en .NET 6, que Microsoft ya había comenzado en noviembre de 2021 con .NET 5, el universo .NET ya no está fragmentado, lo que genera tiempos de ejecución unificados, eficiencia de proyectos y mejores herramientas, todo que están destinados a inspirar confianza y eficiencia sin precedentes a los desarrolladores. Entonces, con MAUI, ahora todo es parte de un ecosistema más grande donde todo se encuentra en un solo lugar que brinda soporte constante de todos los que trabajan en la plataforma .NET, creando una comunidad de soporte más extensa, una de las fallas más importantes de Xamarin. 

Todo lo anterior promoverá cambios de percepción que harán de MAUI la única forma .NET existente de desarrollo de aplicaciones multiplataforma. 

3. MAUI presenta proyectos individuales

Si alguna vez usó Xamarin, ya conoce la molestia de crear un proyecto diferente para cada plataforma de destino. Si estaba, digamos, desarrollando una aplicación para iOS y Android, entonces necesitaba trabajar con el proyecto de plataforma líder y luego un archivo de proyecto para iOS y un archivo de proyecto para Android. Por supuesto, para la mayoría de los desarrolladores experimentados, tener que trabajar en proyectos separados no es el fin del mundo, pero tener que hacer cientos de cosas diferentes para cada proyecto es una especie de molestia. ¿no es así? 

Sin embargo, con MAUI, este problema se soluciona con la introducción de proyectos individuales. MAUI nos brinda la oportunidad de trabajar dentro de una sola interfaz con un archivo de proyecto donde podemos escribir código multiplataforma o específico de plataforma, según la aplicación que estemos desarrollando. Como resultado, ahora podemos escribir dentro de un único proyecto consolidado que se ejecuta en objetivos múltiples y produce ejecutables para cada plataforma de destino sin modificar el código base. De esta manera, MAUI tiene el potencial de fomentar una reutilización sin precedentes, reducir la complejidad del desarrollo de aplicaciones multiplataforma, mejorar la experiencia del desarrollador y hacer que MAUI y .NET sean más competitivos, lo que en última instancia puede convertir a Microsoft en el servicio de referencia para los desarrolladores. por todo el mundo.

4. MAUI y Blazor

Las ventajas de MAUI no dependen completamente de que sea la evolución de Xamarin. Además de potenciar Xamarin y solucionar sus problemas, MAUI también presenta nuevas funciones, como escribir aplicaciones web con Blazor, un marco .NET que permite a los desarrolladores crear interfaz de usuario web del lado del cliente utilizando C# en lugar de JavaScript. Además, Blazor hace que el código y las bibliotecas se puedan compartir, y ahora podemos alojar estos y más componentes de Blazor en las aplicaciones de MAUI. 

Pero, ¿por qué es tan genial? Porque podemos usar Blazor junto con MAUI para crear aplicaciones multiplataforma mediante la interfaz de usuario web, lo que significa que todos los componentes se ejecutan de forma nativa en .NET, lo que le brinda acceso a funcionalidades nativas a través de la plataforma .NET. En ese sentido, MAUI nos permite crear aplicaciones multiplataforma de Blazor que se pueden ejecutar en el escritorio, pero también en Android, iOS y macOS.

5. MAUI presenta manipuladores

Aquellos de nosotros que hemos trabajado con Xamarin antes conocemos las complejidades de hacer que todo funcione. Las herramientas, la forma compleja en que se crea el código, los múltiples archivos de proyecto y la aplicación pesada y lenta resultante, por nombrar algunos, son algunos de los obstáculos de Xamarin para el desarrollo de aplicaciones multiplataforma. Sin embargo, una de las mayores molestias de Xamarin es que si, por alguna razón, falta algo en su proyecto, o si necesita realizar cambios, debe escribir un renderizador personalizado para cada plataforma de destino. Y, como mencionamos anteriormente, los renderizadores pueden ser una molestia, para empezar; imagina tener que usarlos cada vez que quieras cambiar algo. Con MAUI, Microsoft aborda estos problemas con controladores, un componente arquitectónico que mapea controles multiplataforma y los traduce a su implementación nativa en cada plataforma de destino. 

A diferencia de los renderizadores, los controladores son más rápidos, fáciles de usar, altamente personalizables y globales, lo que significa que puede modificarlos en cualquier lugar dentro de su aplicación MAUI. Además, puede cambiar fácilmente el controlador de cada plataforma sin crear uno nuevo para cada cambio que realice, una característica que es posible gracias a que los controladores están desacoplados. Finalmente, este desacoplamiento hace que los controladores sean reutilizables entre proyectos, y podemos usarlos para iniciar acciones, mostrar colecciones y datos, y mucho más.

 

6. MAUI mejora la recarga en caliente

La recarga en caliente es una excelente función que nos permite modificar el código fuente de la aplicación mientras se ejecuta sin detener la ejecución del producto y luego reiniciarlo para ver los cambios en el código. Sin embargo, como ya sabrá, Hot Reload no es nuevo en MAUI. Xamarin ya disfrutó de algunos de los beneficios de Hot Reload. La diferencia es que en MAUI encontraremos soporte Hot Reload para todos los archivos C#. Como resultado, MAUI nos ahorra innumerables reinicios, reconstrucciones y nuevas navegaciones de aplicaciones, lo que hace que el proceso de desarrollo sea más rápido, más fácil y nos hace más productivos. 

Podríamos seguir y seguir sobre las funciones y los cambios de MAUI en comparación con Xamarin, pero dado que no podemos profundizar tanto como queremos en todos ellos, aquí hay algunas ideas generales de algunos de los otros cambios que presenciaremos al migrar de Xamarin a MAUI:

  • MAUI brinda la opción de personalización específica de la plataforma donde podemos personalizar completamente la interfaz de usuario y el comportamiento de nuestra aplicación para cada plataforma individual. 
  • MAUI tiene un motor de diseño para crear páginas.
  • MAUI es compatible con el enlace de datos, un proceso que conecta la interfaz de usuario de la aplicación con los datos que muestra, lo que genera elementos más atractivos y fáciles de mantener.
  • MAUI tiene una biblioteca de gráficos considerable para todas las plataformas, lo que nos permite mezclarlos y combinarlos como queramos para lograr un aspecto particular para un proyecto específico.
  • MAUI tiene APIs para acceder a funciones nativas de dispositivos que permiten que los dispositivos recuperen información de GPS, cámaras o baterías, entre otros.
  • MAUI es una capa sobre las API de la plataforma nativa, lo que da como resultado aplicaciones completamente nativas. De esta manera, las aplicaciones desarrolladas en MAUI se verán y se comportarán como lo harían las aplicaciones nativas. 

 

¿Debería migrar de Xamarin a MAUI?

La pregunta del millón. ¿Por lo que debería? La única respuesta y la más directa que podemos darte es sí, deberías hacerlo. Como mencionamos varias veces anteriormente, dado que MAUI es descendiente directo de Xamarin y ofrece una gran cantidad de mejoras, nuevas características y ventajas que potencializan aún más sus esfuerzos de desarrollo de aplicaciones multiplataforma, entonces sí, tiene mucho sentido que actualice a MAUI. . No hay forma de evitarlo; es el siguiente paso lógico para los desarrolladores de aplicaciones que siempre están a la vanguardia de las tecnologías modernas y son conocidos por ofrecer soluciones innovadoras. En ese sentido, no debería haber dudas sobre la migración a MAUI. Y, viendo que Xamarin está destinado a desaparecer, probablemente tendrás que hacerlo. Entonces, la única pregunta que queda es: ¿cuándo actualizar?

Según la sugerencia de Microsoft, deberíamos comenzar proyectos con MAUI una vez que se lance oficialmente y esté disponible en general, lo que, como mencionamos anteriormente, no sucederá hasta el segundo trimestre de 2022. Sin embargo, han lanzado 12 previews de MAUI hasta ahora con toneladas de nuevas capacidades, documentación, mejoras y correcciones de rendimiento destinadas a hacer que la versión final de MAUI sea lo más perfecta posible. Además, y para nuestro alivio, Microsoft también se comprometió a hacer que la migración de Xamarin a MAUI sea lo más fluida y sencilla posible. No estamos seguros de cuán fluido será en realidad. Aun así, teniendo en cuenta el historial del gigante tecnológico de facilitar la vida de los desarrolladores, estamos seguros de que la migración se llevará a cabo de la manera más sencilla. Supongo que esperaremos y veremos. Mientras tanto, podemos probar las últimas vistas previas de MAUI, Visual Studio y .NET 6 acá y familiarícese con lo que será trabajar con ellos.  

Pero vayamos al grano. La migración de Xamarin a MAUI y su tiempo realmente depende de su empresa y del tipo y tamaño de los proyectos que tiene actualmente en marcha. Si tiene aplicaciones pequeñas, puede migrarlas sin demasiados problemas. Sin embargo, para proyectos más grandes o aquellos que aún tiene bajo investigación pero que aún no ha comenzado, puede ser una buena idea esperar hasta que Microsoft tenga más herramientas y más soporte y documentación para ayudar a que su migración sea más manejable y segura. Aún así, aquí hay algunos escenarios a considerar al hacer su transición de Xamarin a MAUI:

Ya estás usando .NET: Si usted y su equipo ya han trabajado con una pila .NET y tienen productos y software móviles o de escritorio integrados, entonces migrar a MAUI es el siguiente paso natural para usted. Puede aprovechar fácilmente el conocimiento que su equipo ya tiene para hacer que la transición sea lo más fluida posible. También puede reutilizar la mayoría de las bibliotecas y la lógica empresarial y la mayor parte del código de la interfaz de usuario con la ayuda de Blazor.

Tienes experiencia en el desarrollo de aplicaciones multiplataforma: Lo mismo que arriba. Si ya tiene experiencia con el desarrollo de aplicaciones multiplataforma, puede aprovechar fácilmente ese conocimiento y aplicarlo al migrar de Xamarin a MAUI. Claro, algunos aspectos serán diferentes, y es posible que la configuración del proyecto no sea a lo que está acostumbrado, pero la codificación diaria y los conceptos, componentes y dinámicas generales son básicamente los mismos.  

Actualmente estás trabajando con Xamarin: Si en este momento tiene uno o más proyectos en curso, o comenzando, que va a desarrollar con Xamarin, puede ser una buena idea esperar para poder actualizar a MAUI lo más rápido posible cuando Microsoft esté listo para proporcionar el herramientas y caminos para simplificar el proceso. ¡No empieces a migrar tus aplicaciones que están actualmente en producción! Dicho esto, asegúrese de realizar la actualización tan pronto como MAUI esté ampliamente disponible, no antes, para que pueda beneficiarse de todas sus mejoras, soporte y datos. Sabemos que aún queda mucho por hacer hasta que GA de MAUI sea una realidad, pero esperar a tener la información, las herramientas y la documentación completas minimizará significativamente las posibilidades de errores y el esfuerzo necesario para realizar la migración. 

Entonces, con toda esa información y su propia investigación, ¿está listo para dar el paso hacia MAUI? Si es así, esta es la secuencia sugerida por Microsoft para realizar la migración de Xamarin a MAUI de la mejor manera posible, más limpia y más rápida.

Migración de Xamarin a MAUI

Hacer un paso a paso de lo que implica la transición a MAUI requeriría escribir otro artículo completo de 1,000 palabras, pero, con el propósito de ser minucioso, destacaremos los pasos principales que debe estar listo para tomar cuando llegue el momento. migrar viene según las sugerencias de Microsoft and expectations: 

 

  1. Microsoft proporcionará un asistente de actualización de .NET para los desarrolladores que hagan la transición a MAUI, así que utilícelo para migrar todos los proyectos de Xamarin a un proyecto de .NET MAUI. Además, debe realizar todos los cambios necesarios en el espacio de nombres del código conocido.
  2. A continuación, debe actualizar todas las dependencias a las versiones compatibles de .NET 6 y MAUI.
  3. Luego, asegúrese de registrar todos los servicios de compatibilidad o renderizadores.
  4. Cree, asegurándose de solucionar cualquier problema o falla que surja.
  5. Finalmente, ejecute su aplicación convertida y verifique que funcione correctamente.

 

Discutimos estos pasos de manera muy amplia, la transición a MAUI implica mucho más y actualizaremos a medida que haya más información disponible. Mientras tanto, esperamos haber logrado arrojar algo de luz sobre la mayoría de los conceptos e ideas relevantes para el nuevo marco de Microsoft y, con suerte, ahora está listo para tomar una decisión informada.

 

De Xamarin a MAUI: conclusión

Aunque todavía faltan algunos meses para la disponibilidad total de MAUI, los desarrolladores de aplicaciones multiplataforma, e incluso los nativos, tienen mucho que esperar y emocionarse. Desde su arquitectura mejorada y funciones avanzadas hasta sus herramientas y facilidad de uso, Microsoft diseñó MAUI con el único propósito de mejorar la productividad de los desarrolladores. Y estamos seguros de que logrará eso y mucho más. Mientras tanto, lo más importante que puede hacer por su empresa es comenzar a investigar, documentarse a sí mismo y a su equipo tanto como sea posible y prepararse para hacer la transición cuando llegue el momento. Para eso, y antes de correr a instalar MAUI, puedes comprobar Página de preguntas frecuentes de MAUI en GitHub, el cual tiene excelentes recursos y está muy bien nutrido en cuanto a información sobre el framework. También puede dirigirse a la propia de Microsoft .y su página de documentación de NET MAUI y blog para comenzar a familiarizarse con los entresijos de lo que significa migrar de Xamarin para usted y su empresa.  

 

Si nos ha estado siguiendo por un tiempo o ha visitado nuestra página, entonces conoce nuestra historia con el desarrollo de aplicaciones multiplataforma y Xamarin. Así que, si necesitas más información o quieres trabajar con nosotros, no te lo pienses dos veces. contactarnos para que podamos hablar y ayudarte!



¿Necesita ayuda con un proyecto?

Dejarnos una línea y vamos a empezar a trabajar!