Que hay de nuevo en Xamarin.Forms 2.4.0.280

Este pasado 27 de septiembre se publicó la versión estable de Xamarin.Forms 2.4.0.280. Esta versión ha incluido un gran número de mejoras y correcciones, la lista completa (release notes) esta aqui.

A continuación, podemos ver los principales cambios.

Fast Renderers

Esta versión de Xamarin.Forms incluye un nuevo grupo de Renderers para Android llamados "fast renderers" para los controles Image, Button y Label. Estos reducen increíblemente el tiempo que toman en pintarse en pantalla, así como la cantidad de memoria involucrada, pero, ojo, también puede cambiar el comportamiento de tu aplicación, sobre todo si has creado renderers personalizados que sobrescriben los renderers por defecto o si tienes controles de terceros que hacen lo mismo (sobrescribir los renderers por defecto de estos controles).

Para activar esta característica solo deben incluir la siguiente línea justo después de inicializar Xamarin.Forms, en el método OnCreate de la actividad principal (MainActivity):

Forms.SetFlags("FastRenderers_Experimental");

Este flag solo funciona para las aplicaciones que usas AppCompact Android, si tu aplicación es antigua podría ser pre-AppCompact y el flag seria ignorado. Lo mismo sucederá si se incluyen flags no válidos.

Ok, y cómo funciona?

Los fast renderers son una refactorización de la arquitectura de renderizado que optimiza el performance reduciendo los wrappers (controles contenedores) de la jerarquía de UI. En el diseño de los renderers una clase wrappers es usado para exponer la API de renderización. El efecto secundario es que se agrega un elemento adicional por cada elemento UI nativo.

Para ilustrar esto, podemos ver la jerarquía de controles sin Fast Renderers.

Ahora veamos la jerarquía de UI con Fast Renderers, donde se eliminan los wrappers.

.NET Standard 2.0

Empieza a tomar forma el soporte de Xamarin.Forms para .NET Standard 2.0, el problema ha estribado siempre en mantener el soporte a los PCL Profiles existentes e incluir el nuevo soporte a .NET Standard 2.0. Lamentablemente no hay una plantilla de proyecto que incluya .NET Standard 2.0 así que para comenzar a trabajar con el soporte debemos crear un nuevo proyecto en .NET Standard e incluir el paquete de Xamarin.Forms y agregar los archivos de proyecto.

Puedes encontrar el seguimiento del soporte a .NET Standard https://bugzilla.xamarin.com/show_bug.cgi?id=59286

Soporte Preview para macOS

Xamarin.Forms macOS está en preview y se han hecho un gran número de correcciones de bugs que se detectaron en la etapa de pre-release, así que en este punto podemos extender de forma relativamente sencilla nuestra aplicación de Xamarin.Forms para soporte macOS.

Si te interesa el soporte para macOS puedes referirte al siguiente enlace.

Que esperas? Actualiza ;)