Agregando Xamarin Hot-reload a una aplicación existente

Usar Xamarin Hot-reload es increíblemente simple en proyectos nuevos pero en proyectos existentes requiere que actualicemos nuestro proyecto a la ultima versión de Xamarin.Forms disponible.

Para este post voy a utilizar un proyecto de ejemplo que cree hace aproximadamente un año, así que en ese entonces utilizaba la versión de Xamarin.Forms 3.1, que era la versión mas actual entonces. Casualmente, en ese entonces se encontraba en preview la versión de Xamarin.LiveReload.

Para poder comenzar con la actualización, primero necesitamos eliminar ese paquete en nuestro proyecto .NET Standard 2.0. Dando doble clic en el proyecto podemos editar el csproj directamente y remover el paquete.

También necesito quitar esta linea de código que se usaba cuando Xamarin.LiveReload era la opción disponible.

Actualizar paquetes de Nuget

Ahora necesitamos actualizar la versión de Xamarin.Forms a la ultima versión disponible (4.2).

Si actualizamos Xamarin.Forms directamente , podremos ver en la ventana de Output que la actualización fue exitosa, a excepción del proyecto de Android.

Esto se debe a que la versión de Xamarin.Forms, depende de las librerías de soporte de Android. Por lo tanto, lo primero que haremos sera cambiar la Target Version de Android en las propiedades del proyecto de Android.

Una vez hecho este cambio, podemos proceder a actualizar todos los paquetes de soporte de Android, junto con el paquete de Xamarin.Forms.

Hecho esto, tenemos gran parte del proceso listo, solo nos resta habilitar Xamarin Hotel Reload en nuestro editor favorito, ya sea Visual Studio 2019 o Visual Studio 2019 para Mac.

La opción que buscamos se encuentra en la sección de Xamarin.

Xamarin Hot Reload se encuentra en preview, pero se incluye sin la necesidad de instalar ninguna extensión o cosa parecida en nuestro IDE favorito. Lo único que tenemos que hacer es activarlo, pues viene des-habilitado por defecto.

Una vez activado podemos iniciar la depuración ya sea en un emulador o un dispositivo físico.

Xamarin Hot Reload utiliza el protocolo de depuración para funcionar este nos permite utilizar dispositivos conectados a redes diferentes a nuestro maquina de desarrollo. Los detalles del funcionamiento de Xamarin Hot Reload aparecen en la ventana de Output con el origen de Debug.

Sencillo, ¿verdad?

Como pueden ver el proceso es sencillo.

Dependiendo la complejidad del proyecto, pueden tener alguna dificultad al compilar el proyecto después de la actualización , en la mayoría de los casos puede deberse a el cache de nuestros ensamblado.

La solución mas eficaz es eliminar las carpetas bin y obj en cada proyecto de nuestra solución. Podemos aplicar esto a través de un comando en Powershell.

Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }

¿Problemas?

Cuéntanos en los comentarios si algo no te funcionó.