MAUI, ¿cuestión de fe?

Ahora que llevo unos meses migrando una aplicación desde Xamarin.Forms a MAUI, todo parece indicar que este proceso va a requerir de un salto de fe.

Si bien en cada iteración se pueden ver las mejoras, éstas van llegando a cuentagotas con un paso adelante y otro par de ellos atrás.

Seguramente una de las cuestiones críticas es comprender los cambios que se han hecho y como afectan a cada plataforma. Hasta ahora, casi todos los problemas me los estoy encontrando en Android, llegando a tener pantallas completas que puedo ver más o menos bien en iOS y que en Android ni tan siquiera se renderizan.

Otro de los grandes problemas que me estoy encontrando es la drástica disminución de la comunidad. Mucha gente que tiene algunas soluciones interesantes para Xamarin.Forms han llegado a un nivel de hastío importante y directamente ni se plantean mover estas soluciones a MAUI. Lo cierto es que es fácil entender las razones, pero no deja de apenarme igualmente.

Ahora que te he contado un poco de todo lo malo, vayamos a los detalles.

La migración en la que ando trabajando la estoy haciendo directamente utilizando las preview de net8.0, y claro, esto afecta directamente a la productividad diaria. Paso más tiempo buscando soluciones a los problemas que me encuentro en el camino que realmente poniendo cosas en producción. De hecho, hasta que podamos poner en producción la aplicación, van a pasar algunos meses.

La instalación para empezar a trabajar te la venden bien, instalas la versión de dotnet que vas a utilizar y en teoría, abres la consola y y tiras la línea dotnet workload install maui, pero no, la realidad es que esto no es tan sencillo. Si tienes versiones instaladas te toca ir desinstalando, comprobar los workloads, y buena suerte si tienes que limpiar tu entorno para quitar dotnet, es un laberinto inabarcable.

Por otro lado, si arrancas un proyecto desde cero y tiras de MAUI, los avanzes en HotReload, despliegue en emulador etc, es una gozada y es lo que me hace tener fé en el proyecto. Estoy completamente convencido que en las siguientes iteraciones esto va a mejorar mucho.

En cuanto al desembarco de MAUI, la ventaja que se obtiene al ser ciudadano de primer orden en .NET, es también su peor enemigo. Con Xamarin.Forms teníamos una cadencia de despliegue de algunas semanas y ahora, cada gran paso adelante que se necesite, tiene que estar alineado con toda la plataforma y claro, esto lleva a que si nos encontramos con algún problema más o menos grave, hay que esperar a un nuevo despliegue, con sus ventajas e inconvenientes.

En cuanto a problemas que te puedas encontrar, actualemente muchas soluciones que se están implementando, sólo van a estar disponibles en net8.0, por lo que es posible que tengas que buscarte la vida para arreglar cosas en versiones anteriores.

También he estado trabajando con Azure DevOps para hacer los despligues y lo cierto es que aquí sí que se nota el estar dentro de la plataforma. Aunque hay cosas que tienes que controlar, en líneas generales hacer una build de tus aplicaciones ahora es mucho más sencillo de controlar a través de la línea de comandos en Azure.

Otro caso aparte son los Bindings de librerías nativas. En líneas generales, Android es capaz de trabajar con tus antiguos bindings, pero en iOS es un poco diferente. Vas a necesitar crear un proyecto que apunte directamente a netX.x-ios. Eso sí, mi experiencia ha sido bastante satisfactoria ya que he podido utilizar todo el código que había que migrar.

No tengo nada claro cómo va a terminar toda esta aventura y lo cierto es que me preocupa bastante el futuro que tengan pensado desde .net, ya que para aplicaciones en producción con Xamarin.Forms no hay salida. El soporte se termina el año que viene, 2024, y las nuevas versiones de iOS y Android salen antes sin que tengan soporte para ellas, por lo que te ponen entre la espada y la pared para que actualices a MAUI, pero con los inconvenientes de no tener todas las soluciones para versiones teoricámente listas para producción, así que, buena suerte con .net8, habrá que tener fe.

Me dejo un enlace interesante en el que la comunidad pide ayuda y el soporte por parte de Microsoft brilla por su ausencia:

https://github.com/xamarin/xamarin-macios/issues/18409

Me dejo un segundo enlace en el que nos dejan un truco para que las aplicaciones con Xamarin.Forms podrán ejecutarse en iOS 17. Creo que es un buen ejemplo para señalar la cantidad de trucos, workarounds, que necesitamos ir viendo para que todo esto siga funcionando:

https://github.com/dotnet/maui/discussions/15540

3 comentarios sobre “MAUI, ¿cuestión de fe?

  1. Me conoces, digamos que llegue a tene un nivel alto de xamarin forma y a Maui no pienso acercarme, es más he terminado cansado del mundo mobile+micro que he terminado cambiando de área jaja

    Maui funcionará genial a futuro pero llevan demasiados años de promesas

    Me gusta

    1. Hay veces que no puedes elegir y esta es una de ellas. No hay una opción real de migrar de plataforma ni opciones de quedarte en Xamarin.Forms más tiempo, así que nos toca luchar con lo que tengamos.

      Va a ser un salto de fe, pero es lo que hay!

      Un abrazo enorme en la distancia.

      Me gusta

Deja un comentario