Performance, Xamarin

Mejorando el rendimiento de nuestras Apps usando Compiled Bindings en Xamarin Forms

Los Bindings son una super ayuda para facilitar la experiencia como desarrolladores al permitirnos cargar datos dinámicamente en nuestros controles. Pero quiero detenerme un momento para analizar algunas alertas importantes:

No hay validación en tiempo de compilación: Al agregar los valores en Bindings solo podemos verificar si son correctos en el tiempo de ejecución, tampoco tenemos la ayuda del IntelliSense, por lo tanto, en caso de que escribamos mal el nombre de una propiedad, no lo notamos hasta que nuestra aplicación es ejecutada y no obtenemos el resultado esperado.

➖ Los Bindings se resuelven en tiempo de ejecución mediante la inspección de objetos de propósito general, además, la sobrecarga de hacer esto varía de una plataforma a otra, por tanto hace que sea más costoso en cuanto al tiempo de respuesta.

¡Pero relájate! ¡Podemos resolverlo usando Compiled Bindings! ¡En esta publicación, vamos a aprender a usarlos de una manera fácil y sencilla con Xamarin Forms!


Pero … Primero que nada …🧐

¿Qué son Compiled Bindings?

Los Compiled Bindings nos ayudan a mejorar el rendimiento resolviendo los Bindings en tiempo de compilación en lugar de tiempo de ejecución e integrando el IntelliSense, por eso se resuelven más rápido que los Bindings clásicos.

A continuación, te presento algunos puntos específicos que nos ayudan a ver los beneficios que podemos obtener en términos de rendimiento promedio que revelan las pruebas unitarias.  (⚠ Estos son promedios, dichos puntos pueden variar según el dispositivo móvil, la plataforma o la versión del sistema operativo en el que se ejecuta la aplicación ):

➖ Cuando los Compiled Bindings usan notificaciones de cambio de propiedad (OneWay, OneWayToSource or TwoWay) tiene un rendimiento aproximadamente 8 veces más rápido que los Bindings clásicos.

➖ Mientras que si el Compiled Binding no usa el cambio de propiedad (OneTime), tiene un rendimiento aproximadamente 20 veces más rápido que los Bindins clásicos.


¡Para entender mejor, creemos una escenario de ejemplo.!

Para que podamos ver el resultado, vamos a crear un escenario de ejemplo, en este caso tengo un ViewModel con las propiedades Name y LastName.

Luego, agrega el BindingContexta tu MainPage.xaml.cs

¡Y ahora, veamos en el XAML!

This image has an empty alt attribute; its file name is Sample_CB1.gif

Quiero detenerme para hacer algunas observaciones:

🔎 Agregué la propiedad Name al Label y, como puedes ver, no se identificó, en cambio, fue reemplazada por otra incorrecta y tuve que reescribirla / corregirla porque no tenía la ayuda de Intellisense.

🔎 En la propiedad LastName cometí un error ortográfico y me dejó hacerlo sin problemas, pero al ejecutar mi App no ​​podré ver el valor deseado en dicho Label.


¡Empecemos!

Para evitar los inconvenientes causados ​​en el escenario anterior, ¡aprendamos a usar Compiled Bindings! Para su implementación debes seguir los pasos que se indican a continuación:

Configurando el  x:DataType en tu .xaml:

Primero, creemos un namespace en el que haremos referencia a nuestro proyecto:

Luego, agreguemos un DataType el cual  es un atributo que nos permite especificar el tipo de datos al que se enlazarán los componentes y sus hijos.

📒 Este atributo se puede volver a definir en cualquier punto de una jerarquía de vista.

Ahora, si vuelves a ejecutar tu aplicación, con las mismas propiedades del escenario anterior en el que agregamos el nombre de una propiedad incorrecta,  verás esta propiedad marcada en la tabla de errores y no podrás ejecutar tu App hasta que no tenga las propiedades correctas! 🤓 ¡Solo tienes que corregir el nombre de la propiedad, y luego, tu aplicación estará lista para ejecutarse! 😎

La imagen tiene un atributo ALT vacío; su nombre de archivo es Screen-Shot-2021-09-22-at-9.03.58-PM-1024x212.png

🤓 Desde ahora puedes utilizar Compiled Bindings en tus proyectos. 💕

Si deseas conocer más información sobre Compiled Bindings puedes ingresar aquí!


Artículo en inglés: https://askxammy.com/improving-performance-app-using-compiled-bindings/

Referencias: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/data-binding/compiled-bindings?WT.mc_id=DT-MVP-5003353

Tagged , , ,

1 thought on “Mejorando el rendimiento de nuestras Apps usando Compiled Bindings en Xamarin Forms

Leave a Reply

Your email address will not be published. Required fields are marked *