[Article] .NET Multi-platform App UI (MAUI)

Mientras esperábamos las novedades de .Net 5 Microsoft nos sorprendió de Novedades que vendrán en .Net 6. Microsoft tiene como objetivo la unificación de toda la plataforma .Net es un solo marco de trabajo. MAUI busca cumplir este mismo objetivo en .Net 6 unificando la experiencia de desarrollo UI en una sola solución.

¿Qué es MAUI?

MAUI es la evolución de la herramienta Xamarin.Forms. Hoy muchas compañías lo utilizan para llevar adelante proyectos móviles. De la mano de Xamarin las empresas han logrado maximizar sus inversiones en desarrollo compartiendo hasta un 95% de su código de desarrollo. Ahora, con MAUI, podremos extender estas características para construir aplicaciones de escritorio y que sean multiplataforma.

Lo que conocemos hasta ahora es que MAUI (.Net Multi-platform App UI) es la evolución de Xamarin.Forms. Podremos crear no solamente aplicaciones, Android o IOS, también, soportará otras plataformas como aplicaciones de Windows (x32, x64 y ARM) y MacOS aprovechando el conocimiento que tenemos actualmente. No se ha mencionado a Linux, ¡esperemos que en su lanzamiento esté incluido!, aun así, será soportado por la comunidad y sin soporte oficial.

Como podemos ver en la imagen, algunas de las características son la unificación de herramientas, simplificación en la estructura de proyectos, fácil reutilización de código. Podremos seguir realizando nuestras aplicaciones con el patrón MVVM, pero, además, con el patrón MVU Model View Update.

Si quieres comenzar a interiorizarse en MAUI puedes empezar por el repositorio de GitHub disponible en esta dirección https://github.com/dotnet/maui e ir curioseando y experimentando el código, pero, ten en cuenta que todavía está en un etapa de maduración.

Hacia dónde vamos

Como podemos ver en el roadmap, las primeras versiones preliminares comenzarán a estar disponibles este mismo año a finales de este. Durante el 2021 tendremos disponibles nuevas versiones previas y la versión definitiva, junto a .Net 6, en noviembre de 2021.

Una de las preguntas que nos hicimos la mayoría al escuchar el anuncio fue ¿Qué pasará con Xamarin? Por el momento no habrá cambios. Seguirá como plataforma oficial para la creación de aplicaciones móviles y aplicaciones de escritorio usando los proyectos de la comunidad.

Una vez lanzado .Net MAUI, a finales del año que viene, se dará soporte a Xamarin durante un año, pero la recomendación de Microsoft será comenzar la migración de nuestras aplicaciones. Pero no hay que preocuparse, Microsoft siempre nos acompaña en el proceso.

Evolución de las librerías

Algunas cosas que pudimos ver en el Microsoft Build es la evolución de los componentes de Xamarin.Form a MAUI.

Compatibilidad con Visual Studio

Diferencias en las plataformas

Funcionalidades

Otras

Single Project Developer

El nuevo sistema de proyectos está orientado 100% a la productividad de los desarrolladores. Incluye una nueva plantilla de proyecto y todas las herramientas multiplataforma que necesitaremos.

Será mucho más sencillo seleccionar el target de nuestra aplicación, con un solo clic, cambiando de escritorio, emuladores o dispositivos físicos. Con estos recursos integrados .Net MAUI configura automáticamente todas las dependencias para poder ayudarnos en la codificación. Por último, podremos agregar código específico para un sistema operativo en particular o acceder al cualquier API nativa.

Patrones

Algo que siempre se ha caracterizado en .Net es proporcionar varias opciones de desarrollo según las preferencias de cada desarrollador. Esto claramente esto lo podemos ver en todas las versiones de Visual Studio. Además de admitir los patrones MVVM y XAML como hasta ahora, se agrega la el Model-View-Update (MVU).

MVVM (Model-View-ViewModel)

Model-View-ViewModel y XAML han sido los predominantes durante mucho tiempo en .Net. Seguirá presente en MAUI con nuevas funcionalidades y evoluciones constantes.

<StackLayout>
    <Label Text="Welcome to .NET MAUI!" />
    <Button Text="{Binding Text}" 
            Command="{Binding ClickCommand}" />
</StackLayout>
public Command ClickCommand { get; }

public string Text { get; set; } = "Click me";

int count = 0;

void ExecuteClickCommand ()
{
    count++;
    Text = $"You clicked {count} times.";
}

MVU (Model-View-Update)

Model-View-Update (MVU) es un patrón cada vez más popular y utilizado, por esta razón, será incluido en MAUI. Básicamente, proporciona un flujo unidireccional de datos y gestión del estado de la mano de una actualización rápida de la interfaz de usuario. Si quieres más información puede verlo desde este link.

Veamos un ejemplo:

readonly State<int> count = 0;

[Body]
View body() => new StackLayout
{
    new Label("Welcome to .NET MAUI!"),
    new Button(
        () => $"You clicked {count} times.",
        () => count.Value ++)
    )
};

Conclusión

Para los desarrolladores de Xamarin es una gran noticia. A pesar de que es una nueva tecnología, podrán utilizar todo el conocimiento adquirido hasta el momento sin problemas. Otra buena noticia, es que no será un producto aparte como hasta ahora, Xamarin / MAUI estará integrado en .Net 6. Seguramente estarán ansiosos como yo de poder ver la primera preview, pero no nos desesperemos, el tiempo pasa muy rápido, y cuando nos queramos dar cuenta, ¡ya estaremos en .Net 6 utilizándolo!

Fernando Sonego

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *