Contribuir a .NET MAUI

.NET MAUI es un proyecto Open Source desde su inicio y desde etapas tempranas, se permite colaborar o contribuir de diferentes formas (eso sí, con unas bases a seguir bastante definidas).

.NET MAUI

Tras ver ya algunas contribuciones de la comunidad, y recibir un correo preguntando como se puede ayudar, en este artículo, voy a hacer un repaso en las diferentes formas en las que se puede contribuir en .NET MAUI, así como compilar el proyecto, etc.

¿Te interesa?. Vamos a por ello!.

Consejos antes de comenzar

Antes de empezar, colaborar en proyectos Open Source tiene partes positivas como:

  • Vas a ayudar a otros!.
  • Es una forma divertida de aprender.
  • Etc.

Sin embargo, si nunca has colaborado antes probablemente tengas algunas dudas. La primera de ellas será como hacerlo. Para eso espero que este artículo sea de ayuda. El segundo de los posibles problemas esta en el conocido “síndrome del impostor”. Dudas si lo que haces es correcto,  etc. En este punto, no te preocupes!. Si hay algo que se pueda mejorar, lo verás en el feedback. Es parte de la “gracia” de colaborar así, aprenderás posiblemente cosas nuevas.

Tan solo recuerda:

  • No tengas dudas. Aprenderás cosas nuevas como yo y todos lo hacemos a diario.
  • Puedes preguntar al crear la PR lo que necesites!.

Formas de contribuir

Lo primero de todo, contribuir tiene varias definiciones aunque en este caso:

“se trata de ayudar y concurrir con otros al logro de un cierto fin”

Se puede ayudar de muchas formas!. No tienes porque implementar la espectacular funcionalidad X para poder contribuir.

Vamos a repasar las diferentes opciones disponibles:

  • Probar las Previews.
  • Dar tu feedback en las Specs de nueva funcionalidad.
  • Correcciones en la wiki.
  • Tomar una de las issues disponibles (implementar una propiedad en un Handler).

Preparar el entorno

Antes de comenzar a trabajar con .NET MAUI, para trabajar con .NET 6, debemos instalar .NET 6 y otros requisitos.

Comenzamos instalando la Preview de .NET 6:

Para trabajar con .NET para Android y iOS necesitarás instalar también los workloads:

Android:

iOS:

En el caso de querer probar la implementación de macOS usando Catalyst, necesitas instalar:

Para compilar el proyecto debemos comenzar por tener el mismo. Es sencillo:

git clone https://github.com/dotnet/maui.git C:\maui

Usando Visual Studio (Windows o macOS), tras obtener el proyecto no deberás hacer nada especial para compilarlo. Abre la solución Microsoft.Maui.sln y pulsa F5.

Estructura del proyecto

A continuación, vamos a ver la estructura básica de la solución. Con respecto a Xamarin.Forms, se simplifica considerablemente el número de proyectos (gracias al uso de Multitargeting) donde:

  • En la carpeta Controls puedes encontrar los Renderers de Xamarin.Forms y otras partes usadas por el paquete Compatibility.
  • En Core, esta disponible el proyecto Core de .NET MAUI. En este proyecto puedes encontrar los Handlers en la carpeta Handlers y es el proyecto principal que editarás. Dentro de esta carpeta también puedes encontrar los proyectos de tests relacionados con el Core de .NET MAUI.
  • En la carpeta Essentials se encuentra la evolución de Xamarin.Essentials.
  • Todo lo que permite funcionar a al proyecto único o Single Project se encuentra en la carpeta SingleProject.

Implementar una propiedad de un handler

Has revisado las issues de .NET MAUI y te has decidido a colaborar implementando una propiedad de un Handler. Fantástico!. A continuación, algunos detalles que debes tener en cuenta:

  • Como la propia issue indica, añade una sola propiedad para un control.
  • Debes implementar el método del Handler para iOS y Android.
  • Crea los métodos de extensión necesarios o reutiliza lo existentes cuando sea apropiado / posible.
  • Mueve el código del Renderer correspondiente que encontrarás en la carpeta Compatbility. Marca el código portado con el atributo [PortHandler].
  • Añade tests tanto para iOS como para Android (DeviceTests).
  • Evitar cualquier cambio que no sea esencial para la propiedad del Handler (incluidos los espacios en blanco).

Crea una nueva rama partiendo de lo último disponible en main.

No se requiere cumplir un patrón específico a la hora de crear la rama. Mis recomendaciones serían:

  • Puedes crear una rama “fix-{id}” donde el id es el identificador de la Issue.
  • Puedes usar un nombre descriptivo. Por ejemplo, si estas corrigiendo un error al seleccionar un elemento en el TabView podría ser algo como “implement-text-button”.
  • También puedes usar una combinación de las ideas anteriores. Por ejemplo: “fix-1234-text-button”.

El momento de enviar la PR

Añade un título descriptivo junto con una breve descripción. Añade el enlace a la issue asociada.

Todo listo para enviar!. Una vez enviado, miembros del equipo comenzarán a revisar todo. Una vez pasadas revisiones, builds y otras validaciones. Enhorabuena, tus cambios estarán incluidos en .NET MAUI!.

Hasta aquí. Creo que hemos realizado un buen resumen de como contribuir en .NET MAUI. Además de todo lo expuesto, si puedo ayudar en algo tan solo avísame. Cualquier feedback es bienvenido en los comentarios de la entrada!.

Más información

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s