En menos de un mes Microsoft finalizará el soporte para la primera herramienta importante de interfaz de usuario multiplataforma de .NET, Xamarin Forms. En lugar de que los desarrolladores tengan que crear interfaces de usuario independientes para Windows, iOS y Android, Xamarin Forms nos brindó un conjunto de controles de interfaz de usuario multiplataforma podríamos usar para construir una base de código que se compilara en todas las plataformas de destino, sin ningún código específico del dispositivo. Fue un gran éxito, pero ahora se está desvaneciendo.
Microsoft ha estado desarrollando una continuación de Xamarin Forms en forma de MAUI, la interfaz de usuario de la aplicación multiplataforma. MAUI es compatible con Windows, macOS, iOS y Android, lo que nuevamente le permite continuar desarrollando código utilizando las mismas herramientas y técnicas que Xamarin, trabajando con las últimas versiones de .NET. MAUI todavía está en desarrollo, con algunas diferencias que hacen que sea difícil simplemente cambiar un conjunto de controles por otro.
Puede ver la comparación actual entre las dos plataformas en GitHub. Probablemente las diferencias más importantes son la necesidad de mover el código al última plataforma .NETcon soporte para .NET 6 y superior, así como la gama de diferentes modelos de aplicaciones que se amplían para incluir soporte para ambos Pymes y Blazor. El objetivo es proporcionar un conjunto común de funciones entre MAUI y el SDK de aplicaciones de Windows, para que pueda mover rápidamente código exclusivo de Windows a multiplataforma.
Un punto clave a tener en cuenta es que, aunque no será compatible, aún necesita Xamarin Forms para crear aplicaciones para dispositivos iOS y Android más antiguos. Si los dispositivos más antiguos no son su objetivo, entonces debería considerar mover su código a MAUI o a uno de los marcos de interfaz de usuario .NET multiplataforma alternativos que ahora están disponibles. Ambos Plataforma Uno y avalonía son herramientas maduras que ofrecen controles compatibles con WinUI 3 y admiten muchos sistemas operativos diferentes, incluido Linux.
Más opciones que MAUI
La elección es buena. La naturaleza de código abierto de .NET lo ha convertido en una plataforma atractiva para extensiones como Uno y avalonía, los cuales ofrecen diferentes enfoques para entregar UI multiplataforma, admiten diferentes modelos de aplicaciones y brindan una gama diferente de controles. Puede elegir la herramienta que se adapte a su equipo y, si desea probar una nueva, todo lo que necesita hacer es configurar una nueva rama en su repositorio y probarla.
Microsoft proporciona un guía para actualizar de Xamarin a MAUI. Si bien se admiten los escenarios más comunes, otros, como watchOS, requieren que cree nuevas aplicaciones Swift nativas. En la práctica, esto puede no ser necesario, ya que las notificaciones enriquecidas de watchOS pueden ser una mejor alternativa para administrar un marco de aplicación completamente nuevo.
Si bien puede mover proyectos al formato de proyecto MAUI SDK manualmente, existe la opción de utilizar el Asistente de actualización .NET de Microsoft para iniciar el proceso por usted. Es importante tener en cuenta que en la mayoría de los casos esto no entregará una aplicación lista para construir. Tendrá que dedicar tiempo a finalizar los diseños y asegurarse de tener las bibliotecas adecuadas.
Las versiones recientes de MAUI han solucionado muchos de los problemas anteriores y Microsoft mantiene una hoja de ruta abierta, así como una lista de correcciones. en el repositorio MAUI GitHub. Sin duda es un proyecto muy activo y que está madurando rápidamente.
Si planea utilizar una de las plataformas de interfaz de usuario alternativas, tanto Uno como Avalona ofrecen sus propias guías de migraciónasí como estudios de casos que muestran cómo los grandes clientes han gestionado sus transiciones.
Elegir su plataforma de interfaz de usuario
La mayor diferencia entre las plataformas UI Uno y Avalonia y MAUI es que MAUI es un contenedor para controles nativos. MAUI le permite crear aplicaciones de apariencia nativa sin dejar de usar el mismo código, mientras que Avalonia y Uno también tienen su propia representación. Este enfoque garantiza un nivel de coherencia entre aplicaciones en diferentes dispositivos de destino y facilita la transferencia de controles a diferentes dispositivos y plataformas. Al basarse en el modelo WinUI de Windows, las plataformas Avalonia y Uno tienen más opciones para diseñar controles.
Si miras Documentación migratoria de Uno, hay muchas cosas a considerar al migrar, desde animaciones hasta controles, navegación y más. Sin embargo, existe suficiente similitud entre cómo Uno y Xamarin Forms implementan XAML como para que pueda avanzar a través de una migración. Sin embargo, no debe esperar que sea un proceso que pueda automatizarse fácilmente.
Por ejemplo, si estás animando controles u objetos, debe pasar de la clase de animación de Xamarin Forms a los guiones gráficos de WinUI 3. Los guiones gráficos se basan en los enfoques de animación introducidos con WPF en los primeros días de .NET y pueden parecer familiares, ya que se han utilizado en la mayoría de las herramientas de desarrollo de UI de Windows durante más de una década. Vale la pena comprender los equivalentes de Storyboard de las operaciones de animación de Xamarin Forms y usarlos como parte de una migración, mientras se trabaja dentro de una línea de tiempo de Storyboard.
Una diferencia clave es cómo WinUI 3 soporta la navegación. Xamarin Forms tiene un modelo de página, con una pila que gestiona la navegación entre páginas. Esto se reemplaza por un control Marco que administra la navegación hacia adelante y hacia atrás a través de una pila de páginas. Si bien este es un enfoque más flexible, existen algunos problemas que provienen de la herencia de Windows de WinUI 3. Por un lado, no hay soporte directo para los botones de navegación de hardware, por lo que deberá agregar su propio código para entregarlo cuando sea necesario. También debe agregar sus propios controles de la barra de navegación, aunque a diferencia de Xamarin Forms, una navegación WinUI puede pasar parámetros a la nueva página.
Hay suficientes pequeños problemas como este por lo que debería dedicar algún tiempo a revisar la documentación y los tutoriales antes de intentar una migración. Sin embargo, no existen obstáculos reales y existen soluciones para la mayoría de los problemas. Por supuesto, hay otro lado de la historia, donde la migración simplifica algunas operaciones, lo que le permite reducir la complejidad del código y facilitar la depuración.
Las actualizaciones lo son todo
En la práctica, cualquier enfoque que elija para reemplazar Xamarin Forms requerirá un trabajo importante. Sin embargo, gran parte de eso se deberá a la evolución de la plataforma .NET más allá de Xamarin. Microsoft ha trabajado mucho para garantizar que .NET funcione bien en todas sus plataformas de destino, y si está creando aplicaciones orientadas al usuario, querrá aprovechar esos cambios. Xamarin Forms es ahora una tecnología heredada y, como tal, le frenará a usted y a sus usuarios.
Al pasar a un marco de interfaz de usuario moderno, está dando un paso hacia la preparación de sus aplicaciones para el futuro. Eso significa brindar a los usuarios soporte para dispositivos más nuevos y, con Wasm, soporte para aplicaciones web enriquecidas que tienen muchas de las mismas capacidades que las aplicaciones nativas de escritorio y móviles. Tanto Avalonia como Uno tienen grandes bibliotecas de controles que van más allá de lo que Xamarin Forms podría hacer, permitiéndole hacer más con su código y más rápidamente.
Si adopta este enfoque, podría ver el final de vida de Xamarin Forms como una oportunidad para actualizar y rediseñar su código, aprovechando las características más nuevas de .NET y los patrones de diseño más nuevos que pueden ser más adecuados para sus aplicaciones. Incluso podría agregar herramientas de diseño modernas, como Figma, a su cadena de herramientas, lo que le permitirá cerrar las brechas entre el diseño y el desarrollo, reducir las fricciones y garantizar un entorno más colaborativo.
El fin del soporte para Xamarin Forms no es algo malo para .NET móvil y multiplataforma. En todo caso, demuestra que .NET moderno ofrece muchas opciones. Y sus bases de código abierto le permiten agregar su propio código para llenar cualquier vacío.
Copyright © 2024 IDG Communications, Inc.