Introducción
Xamarin lanzó una nueva herramienta para aplicaciones iOS, Android, Mac y WPF llamada Xamarin Inspector que nos permite acelerar el desarrollo permitiendo:
- Ver
el árbol visual de elementos de la interfaz. En OSX además se puede ver
una visualización 3D con capas con los diferentes elementos visuales
que componen la interfaz. - Poder seleccionar elementos y modificar propiedades.
- Poder ejecutar evaluaciones de expresiones C# con REPL (Read-Eval-Print Loop).
Entre
todas las opciones la última es increíblemente interesante ya que
permite realizar múltiples pruebas en tiempo real sin necesidad de
realizar recompilaciones del proyecto, proceso que conlleva un tiempo en
el que no podemos continuar nuestro desarrollo. Esto mismo debió pensar
Frank A. Krueger que ante la posibilidad de poder utilizar ensamblados dinámicos se ha lanzado a crear Continuous Coding anteriormente conocido como Live Coding.
Continuous Coding
La
propuesta de Continuous Coding es reducir al máximo el ciclo de
compilar y ejecutar permitiendo en tiempo real evaluar el código tanto
de la lógica como por puesto a nivel de UI. Poder contruir la interfaz al vuelo
viendo directamente los resultados de cada línea aplicada además de
poder enlazar la misma con la lógica y el backend segun vamos
escribiendo.
Suena a mágico, ¿verdad?
En eso consiste Continuous Coding actualmente disponible en C# para Xamarin en Android e iOS.
Preparando el entorno
El paso inicial de todos es instalar Xamarin Inspector.
Podemos instalar la herramienta tanto en Windows como en OSX de forma sencilla.
El siguiente paso será instalar el add-in de Continuous Coding para Xamarin Studio.
NOTA: Actualmente solo soportado en Xamarin Studio.
En
Xamarin Studio seleccionamos Archivo -> Gestor de complementos. Una
vez en la galería de complementos, seleccionamos la opción de
repositorios.
Añadimos un nuevo repositorio utilizando la siguiente URL:
https://raw.githubusercontent.com/praeclarum/Continuous/master/Continuous.Client.MonoDevelop/AddinRepo
Utilizando Continuous coding
Creamos una nueva aplicación, para este ejemplo crearemos una aplicación Xamarin.Forms.
Debemos añadir una referencia desde los proyectos iOS y Android al paquete NuGet de Continuous.
A continuación, añadiremos:
#if DEBUG new Continuous.Server.HttpServer(this).Run(); #endif
En puntos de inicialización de la App. En el caso de iOS AppDelegate.FinishedLaunching y en el caso de Android Activity.OnCreate son lugares idóneos.
NOTA: this es el contexto en Android. En iOS puede ser cualquier cosa.
En el caso de utilizar el emulador de Android tendremos que hacer un forward del puerto utilizado por Continuous:
Llegados a este punto tenemos todo lo necesario para usar Continuous
Coding. Ejecutamos la App en depuración como lo haríamos normalmente.
Tenemos el panel de Continuous Coding disponible en Ver -> Paneles
-> Continuous Coding.
Podemos enviar Snippets de código utilizando el botón Set Type o la combinación de teclado Ctrl+Shift+Return. En caso de desar que todo lo que vamos editando vaya actualizándose en tiempo real debemos usar el botón Refresh del panel o la combinación de teclas Ctrl+Shift+C.
Podéis ver a continuación a Continuous Coding en acción.
El sencillo ejemplo mostrado anteriormente lo podéis encontrar en GitHub:
One more thing
James Montemagno,
evangelista de Xamarin, se lanzó este verano con un nuevo formato
llamado Motz Codes Live basado en Hangouts de 30-60 minutos tratando
diferentes aspectos relacionado con el desarrollo de aplicaciones con
Xamarin. En el último de ellos junto a Frank A. Krueger realizaron un recorrido bastante completo por Continuous:
Más información
- Blog de Frank A. Krueger
- GitHub
- NuGet