En el transcurso del evento BUILD esta madrugada, Microsoft ha anunciado MAUI, que es el futuro framework de desarrollo de interfaces multiplataforma que formará parte de .NET unificado.
Aunque la información oficial es la que está en el primer enlace, vamos a tratar de resumir y contestar a las preguntas más importantes sobre este anuncio y esta tecnología.
¿Qué es .NET MAUI?
Es el acrónimo (un poco pillado por los pelos) de .NET Multi-platform App UI. Se trata de una evolución de Xamarin.Forms que permitirá crear aplicaciones más allá de Android e iOS y otras plataformas que soporta actualmente esta tecnología. Con MAUI será posible utilizar Xamarin.Forms para crear también aplicaciones de escritorio para Windows (x32, x64 y ARM) y macOS, sacando partido de los conocimientos que ya tienes sobre esta tecnología y dándole más amplitud de miras.
Es importante señalar que en la actualidad ya es posible construir aplicaciones de escritorio con Xamarin.Forms, pero no están oficialmente soportadas. Las aplicaciones construidas con MAUI sí que estarán soportadas oficialmente por Microsoft y formarán parte integral de .NET 6 cuando esté disponible. Linux seguirá siendo posible, pero como ahora: apoyados por la comunidad, sin soporte oficial, lo cual le resta un poco de fuerza a la propuesta.
Este gráfico, sacado del anuncio oficial, define muy bien qué es MAUI:
Además simplifican el actual desarrollo existente en Xamarin, unificando el tooling, simplificando la estructura de proyectos, facilitando la reutilización, etc. (todos los detalles en el primer enlace).
Seguirá soportando el patrón MVVM (Model-View-ViewModel) y también la nueva estrella que parece que se está haciendo un hueco en Xamarin, el patrón MVU (Model-View-Update). Por supuesto, como ahora, podrás sacar partido a las APIs nativas cuando sea necesario, pero en lugar de tener que estar creando un nuevo proyecto por cada sistema operativo, ahora irán todos bajo un único proyecto, simplificando la gestión del desarrollo.
¿Cuándo estará disponible?
El proyecto es Open Source, por lo que si te interesa puedes ir a su repositorio en GitHub e ir viendo el código o experimentando. Pero de momento está en pañales.
Según el roadmap y el anuncio , las primeras versiones preliminares se empezarán a ver a finales de este año, probablemente con .NET 5 en noviembre. A lo largo de 2021 se irán sacando más previews y la versión definitiva se espera que esté disponible junto con .NET 6 en noviembre de 2021, dentro de año y medio.
¿Qué pasa con Xamarin?
Pues no pasa nada de momento. Seguirá siendo la plataforma oficial para crear aplicaciones móviles y podrás crear aplicaciones de escritorio también usando los proyectos de la comunidad. Sacarán nuevas versiones cada 6 semanas como hasta ahora.
Una vez que salga .NET MAUI, a finales de 2021, darán soporte oficial a Xamarin durante 1 año, pero será aconsejable que migres las aplicaciones al nuevo framework.
Por suerte, la migración será fácil y probablemente automática, así que no hay que agobiarse en exceso.
¿Debo aprender Xamarin ahora?
Pues si quieres crear aplicaciones móviles nativas multiplataforma para Android e iOS usando C# y XAML, la respuesta es un rotundo sí. Sigue siendo una plataforma muy interesante que te permitirá sacar partido a lo que ya sabes de .NET para crear aplicaciones móviles de manera rápida y que además son nativas, no funcionando en una vista Web.
Una vez que salga MAUI no debería resultarte difícil adaptarte y migrar las aplicaciones al nuevo framework, obteniendo de paso más opciones para explotarlas, dando a tus clientes el extra de tener aplicaciones de escritorio con muy poco esfuerzo adicional.
En resumen
Aunque el nombre pueda confundir a algunos y lo hayan anunciado con tanta antelación, MAUI es una gran noticia para todos los desarrolladores de Xamarin. Podrán seguir invirtiendo en sus conocimientos desarrollando aplicaciones móviles como hasta ahora y, cuando esté disponible .NET 6, tendrán a Xamarin integrado dentro de .NET en lugar de ser un producto aparte, con el añadido de poder crear más tipos de aplicaciones que ahora, y seguramente pudiendo ampliar en el futuro el alcance a otros nuevos tipos de aplicaciones que puedan surgir. Una combinación ganadora.