.NET MAUI: ¿y si se pudiera desarrollar una app que funcionara en todas las plataformas, incluido Linux?

junio 01, 2022 , 0 Comments

.NET MAUI

Un problema que tenemos los usuarios de Linux es que estamos un poco abandonados por muchos desarrolladores. Cuando tienen que crear algo para un sistema, lo crean para Windows, ya que lo usan alrededor de 4 de cada 5 ordenadores. Y es que desarrollar para más sistemas operativos requiere un esfuerzo extra, pero Microsoft actualizó a mediados de mayo la información sobre su .NET MAUI y pretende facilitar las cosas a los creadores de apps.

¿Qué es .NET MAUI? Tal y como leemos en la documentación de Microsoft, su nombre proviene de .NET Multi-platform App UI, lo que traducido al español es una interfaz de usuario para aplicaciones multiplataforma. El .NET es el mismo que lleva años delante de su Framework, y todo al completo es un marco multiplataforma para crear aplicaciones móviles y de escritorio nativas con C# y XAML.

.NET MAUI está más pensado para apps móviles, pero…

Aunque no lo dicen directamente, parece que el objetivo es claro: crear una aplicación, hacerle unos pequeños retoques y que se pueda usar en cualquier aparato. Básicamente es un poco como las PWA (Progressive Web Apps), pero para aplicaciones móviles que se podrán usar en el escritorio. A esta conclusión llegamos cuando leemos la página de plataformas compatibles, donde se mencionan antes Android y iOS que macOS. Y es que para macOS estará por medio de Catalyst, que es lo que hace que las apps del iPad sean compatibles con macOS.

En la página de plataformas compatibles leemos:

  • Android 5.0 (API 21) o superior. En el caso de las aplicaciones blazor de .NET MAUI, se requiere Android 6 (API 23) o superior.
  • iOS 10 o superior. En el caso de las aplicaciones blazor de .NET MAUI, se requiere iOS 11 o superior.
  • macOS 10.13 o superior, usando Mac Catalyst.
  • Windows 11 y Windows 10 versión 1809 o posterior, con Windows UI Library (WinUI) 3.

¿Y por qué hablamos de esto en Linux Adictos? Pues porque más abajo pone que también será compatible con Tizen, soportado por Samsung, y Linux, soportado por la comunidad. En la página original en inglés usan la palabra «soportado», no compatible, y creo que la traducción debería ser esa, que son Samsung y la comunidad Linux quienes tendrán que hacer los últimos retoques para que una app desarrollada a partir de .NET MAUI sea compatible con Tizen y Linux respectivamente.

¿Son esto buenas noticias? ¿Tiene esto futuro?

No podemos decir que las noticias sean malas. Para empezar, .NET MAUI es de código abierto, pero es la evolución de Xamarin.Forms, por lo que podemos decir que sería un rey puesto después de un rey muerto. La nueva propuesta tiene controles de interfaz de usuario recompilados desde cero para mejorar el rendimiento y la extensibilidad.

Sobre funcionamiento, Microsoft explica:

MAUI de .NET unifica Android, iOS, macOS y Windows API en una sola API que permite una experiencia de desarrollador de escritura una vez en cualquier lugar, a la vez que proporciona acceso profundo a todos los aspectos de cada plataforma nativa.

.NET 6 proporciona una serie de marcos específicos de la plataforma para crear aplicaciones: las versiones para Android, para iOS, para macOS y biblioteca de Windows UI 3 (WinUI 3). Todos estos marcos tienen acceso a la misma biblioteca de clases base (BCL) de .NET 6. Esta biblioteca abstrae los detalles de la plataforma subyacente del código. La BCL depende del entorno de ejecución de .NET para proporcionar el entorno de ejecución para el código. Para Android, iOS y macOS, mono implementa el entorno, una implementación del entorno de ejecución de .NET. En Windows, Win32 proporciona el entorno de ejecución.

Que nadie piense que .NET MAUI lo cambiará todo… ¿o sí?

La primera vez que me hablaron de esto, lo primero que pensé es que «Maui» es una palabra que ya existe en Linux, por lo que me sorprendió. Luego, tras leer un poco más, he llegado a una conclusión que creo que será acertada: en el mejor de los casos, es probable que los usuarios de Linux podamos tener, por ejemplo, una aplicación nativa de Twitter oficial o una app tipo Photoshop para iPadOS, pero no el Photoshop que todos querríamos tener disponible.

Sobre el futuro, nadie sabe. Los procesadores con arquitectura ARM han llegado para quedarse, y Apple ha tenido algo que decir en todo esto. No se pueden descartar dos opciones opuestas: una es que esto no vaya a ninguna parte; la otra sería un futuro casi utópico en el que los desarrolladores se decidieran a crearlo todo con .NET MAUI y al final podríamos tener todo tipo de apps también en Linux, aunque dejando claro que los últimos retoques deberían hacerlos la comunidad. ¿Y si pasara lo segundo?


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.