Si bien muchos de nosotros esperábamos con gran ansiedad la versión release de .Net MAUI de la mano de .Net 5, no fue posible debido a la pandemia. Aun así, en el lanzamiento de .Net 5, recibimos noticias del potencial que tendrá en la versión 6 proyectado para noviembre de este año, 2021.
Recordemos
Usemos la máquina del tiempo y volvamos al 2016, Microsoft anuncia que adquirió Xamarin. Este fue un gran paso adelante para la marca Xamarin, pero también dejó la pregunta de cómo Microsoft adoptaría la plataforma. Prometieron en ese momento que el nombre seguiría siendo el mismo y hasta el día de hoy, Microsoft hizo un un excelente trabajo incorporando al equipo y las herramientas de Xamarin a su ecosistema .Net.
El primer día de Build 2020, Microsoft anunció «viaje hacia un solo .NET», el objetivo es que .NET sea un marco con todas las herramientas que los desarrolladores necesitan para crear software para todas las plataformas. Aparece .NET MAUI.
¿Que es MAUI?
.NET MAUI (Multi-platform App UI) es la próxima generación de Xamarin Forms , nos permitirá, como desarrolladores, crear una aplicación una vez en un solo proyecto de Visual Studio con una única base de código, dirigida a cualquier dispositivo que sea compatible.
El objetivo principal de Microsoft con este nuevo framework es ofrecer una estructura de proyecto simplificada. En lugar de una única solución con proyectos separados para cada plataforma para la cual queremos portar nuestra aplicación, en MAUI en un solo proyecto tendremos los recursos necesarios para compilarlo en las plataformas específicas .
En caso de necesitar una API nativa para acceder a servicios específicos de un dispositivo, estas pueden agruparse en una especie de vista por plataformas y usarse en el momento de la compilación cuando se compile a esa plataforma. Por otra parte, con el código de la plataforma, podremos agrupar recursos que utilizarán nuestros XAML, incluido imágenes y fuentes, lo que le brinda una manera o lugar para administrar todos los elementos de nuestras aplicaciones.
Para lo que quieren saber qué pasará con Xamarin Forms, Microsoft continuará por el momento evolucionando y mejorando la versión actual hasta el lanzamiento de MAUI con .Net 6. Luego, Xamarin Forms continuará recibiendo soporte durante los 12 meses siguientes.
Los 5 puntos más fuertes de MAUI
Único proyecto de desarrollo con .NET CLI
En Xamarin.Forms, para los desarrolladores es bastante incómodo trabajar con múltiples proyectos dirigidos a múltiples plataformas. Mantener organizadas los assets como imágenes, fuentes y también el código relacionado a una plataforma a veces se volvió difícil de mantener. Al encontrarnos con estos problemas, siempre nos venía el mismo pensamiento: «¿Por qué no podemos todas estas cosas en un solo proyecto?»
.NET MAUI busca solucionar este problema de la mano de tener un solo proyecto para resolver los inconvenientes anteriormente nombrados. Pero, no todo es magia, algunas operaciones específicas de cada plataforma deberemos manejarlas para cada una de ellas.
.NET MAUI también proporciona soporte para la cadena de herramientas .NET CLI para crear, desarrollar, ejecutar y publicar aplicaciones .NET sin problemas. Todo esto estará soportado por el conjunto de herramientas en .NET CLI para crear, desarrollar, ejecutar y publicar aplicaciones .NET sin problemas.
Slim Render
Los renderizadores personalizados aún pueden funcionar con un paquete de compatibilidad, pero se recomienda migrar y usar el nuevo patrón de Slim Render. Xamarin.Forms usa y depende de representadores personalizados que no se usan en .NET MAUI. Utilizar este nuevo patrón ayudará a que su aplicación sea liviana y tendremos una experiencia de desarrollo más sencilla gracias a que. .NET MAUI está débilmente acoplado y no hay dependencias de Xamarin.Forms en él.
Patrones modernos
Xamarin.Forms admite 2 patrones muy utilizados: MVVM (Model-View-View-Model) y RxUI (ReactiveUI). En MAUI, además de los anteriores, tendremos disponible MVU (Model-View-Update).
El patrón nos brinda una forma unificada de crear interfaces nativas multiplataforma a partir de una única base de código. Por otro lado, permite escribir código de UI y lógica en C# como vemos en el ejemplo:
Blazor tampoco queda afuera, si bien blazor está más orientado a la creación de aplicaciones web, en .Net 6 se extenderá a escenarios blazor para incluir aplicaciones nativas que puedan depender de la presentación basada en web, como por ejemplo electrón, funcionara de una manera similar.
Soporte completo para recargas en caliente
Se proporcionará soporte completo de recarga en caliente para .NET MAUI. Pueden consultarlo en la siguiente tabla.
Unificación de bibliotecas
.NET MAUI tendrá un fuerte trabajo en la unificación de bibliotecas críticas. Proporciona varios beneficios al fusionar la biblioteca Xamarin.Essentials en .NET MAUI para que puedan ser utilizadas fácilmente en las capacidades del dispositivo, como sensores, fotos, contactos y muchos servicios que usan de forma regular, como autenticación y almacenamiento seguro.
Conclusión
MAUI es un Xamarin.Forms renovado con características similares pero promete una gran cantidad de prestaciones que la comunidad solicitaba hace mucho tiempo. La estructura de Xamarin.Native (Xamarin.iOS y Xamarin.Android) no cambiará, solo lo hará el nombre en .NET 6. Xamarin.Native también tendrá que adaptarse a una nueva lista de bibliotecas. Seguramente el rendimiento y la fácil implementación de la interfaz de usuario con MAUI serán una gran competencia para otros equipos como el de Flutter.
En próximos post seguramente veremos más en detalle algunos ejemplos de MAUI y como funcionara antes de su versión final..