Crear contenido dinámico en Xamarin Forms

¡Hola!
Es posible que alguna vez, en una aplicación móvil XF, te hubiese sido interesante añadir contenido de forma dinámica a alguna pantalla. Con esto me refiero a contenido totalmente nuevo, es decir, tienes tu aplicación en el market correspondiente y quieres añadir o cambiar, por ejemplo, algún control de alguna página, pero antes de subir tu aplicación al market no sabes cómo será ese contenido. La solución obvia es cambiar el código, compilar, subir una nueva versión de la aplicación y esperar a que tus usuarios se la descarguen. Pero si has tenido algunas cosas en cuenta puedes generar y cargar XAML en caliente en alguna pantalla. Continúa leyendo Crear contenido dinámico en Xamarin Forms

DependencyResolver en Xamarin Forms

¡Hola!
Hace unos días echamos un vistazo al Dependency Service de Xamarin Forms (en esta entrada) y cómo podíamos ampliar un poco sus capacidades para sacarle un poco más de jugo (código). Pues a raíz de eso, me di cuenta que en las nuevas versiones de Xamarin Forms (en concreto a partir de la 3.1) se ha añadido una nueva forma de resolver las instancias (aquí el issue en GitHub), junto con una nueva clase estática llamada DependencyResolver. Continúa leyendo DependencyResolver en Xamarin Forms

BDD en .NET con SpecFlow

¡Hola!
SpecFlow es un framework que nos va a permitir aplicar BDD (Behavior-Driven Development o Desarrollo guiado por comportamiento) a nuestros proyectos de una forma bastante sencilla utilizando Gherkin como lenguaje para definir nuestros escenarios. En otras palabras, SpecFlow nos va a permitir construir pruebas entendibles desde negocio y reflejarlas en nuestros test, por ejemplo, reflejar una historia de usuario que un humano entienda, en un test en nuestro código. Antes que nada quiero advertir que no tengo mucha ni idea de BDD, así que es posible que no sea muy riguroso el post (¿¿alguno lo es??), por lo que me disculpo por adelantado 🙂 En cualquier caso el objetivo es explorar un poco la herramienta SpecFlow que me parece muy interesante, y dicho esto, vamos a ello. Continúa leyendo BDD en .NET con SpecFlow

UITests + ApprovalTests en Xamarin Forms

¡Hola!
El otro día pude ver (a grandes rasgos) el funcionamiento general de los test de UI en Xamarin Forms. En cuanto vi la sentencia app.Screenshot(“Welcome screen”) automáticamente me acordé de ApprovalTests y cómo se generaban los test de aprobación para aplicaciones Windows Forms o WPF que, en esencia, se basa en hacer una captura de pantalla del formulario/ventana/control correspondiente y comprobarlo con la captura que previamente hemos aprobado. Si no sabes cómo funciona la librería ApprovalTest hace un tiempo escribí algunas entradas sobre ella (1, 2 y 3).
Continúa leyendo UITests + ApprovalTests en Xamarin Forms

DependencyService vitaminado en Xamarin Forms

¡Hola!
Si has trabajado con Xamarin Forms seguro que has utilizado en algún momento DependencyService. Este servicio nos permite poder llamar a funciones de las diferentes plataformas (iOS, Android…) desde nuestro código compartido; típicamente crearemos una interfaz en nuestro proyecto compartido y las implementaciones correspondientes en las diferentes plataformas que serán decoradas con el atributo Dependency (aquí puedes ver una estupenda explicación). Continúa leyendo DependencyService vitaminado en Xamarin Forms

Attached Properties en Xamarin Forms

¡Hola!
Desde hace ya varios meses trabajando con Xamarin Forms y antes con WPF, nunca me había dado cuenta de lo extraño que era cómo se definen las filas y columnas de un elemento dentro de un Grid. Con extraño me refiero a que, seguramente porque lo hacía de forma natural, no me había dado cuenta de que la propiedad Grid.Row (entre otras) no está presente en todos los controles que utilizamos… me refiero a esto: Continúa leyendo Attached Properties en Xamarin Forms

Ejemplo de uso de DynamicProxy

¡Hola!
Hace unos días vimos un par de entradas (ésta y ésta) sobre las características y usos básicos de los proxys a través de la libería DynamicProxy. Hoy vamos a ver un pequeño proyecto en el que utilizaremos esta libería para medir tiempos. Continúa leyendo Ejemplo de uso de DynamicProxy