La programación para dispositivos móviles es el futuro y el presente de todo desarrollador. Todo usuario tiene un Smartphone de mayor o menor gama en el bolsillo, lo que hace que el público objetivo de la programación de aplicaciones móviles sea muy amplio, y a su vez muy competitivo.

Pero al desarrollador se le presenta un problema, y es qué al haber tanta variedad de dispositivos, las aplicaciones deben adaptarse a ellos, y debe funcionar igual de bien tanto en un dispositivo “lowcost” con sistema operativo Android, como en el último modelo de iPhone, que utiliza el sistema iOS de Apple.

El desarrollo de aplicaciones en los tres grandes sistemas operativos (Windows Phone, Android e iOS) es muy diferente entre sí, ya que emplean distintos lenguajes de programación, así como distintas arquitecturas, y aquí es donde aparece Xamarin Forms. Gracias a Xamarin Foms, podemos desarrollar aplicaciones nativas para Windows Phone, iOS y Android, empleando la misma base de código programada con C# y XAML.

Utilizando vistas programadas en XAML, obtenemos interfaces nativos de cada sistema operativo, donde utilizan los controles estándar de cada uno. El problema que nos plantea esto, es que limita de manera considerable la personalización y el cambio de aspecto de nuestra aplicación.

Para ello, Xamarin Forms cuenta con los Custom Controls. Custom Controls es una potente herramienta que permite personalizar el aspecto de los controles de Xamarin Forms, tanto en Android, Windows Phone como en iOS. Puede modificarse ligeramente el aspecto y la usabilidad de los controles, para que mantengan la esencia de la aplicación nativa, aunque también puede modificarse por completo para ofrecer distintas experiencias al usuario.

Todas las clases de los controles de Xamarin Forms (botones, etiquetas, cajas de entrada de texto, etcétera…) cuentan con un Renderer, que puede ser modificado por el programador, para editar los Controls. Este Renderer se modifica por separado en cada plataforma, para adaptarse y adecuarse a las necesidades del usuario, tanto visuales como de experiencia de uso.

Para utilizar este tipo de controles, el desarrollador deberá crear su propio Renderer dentro del proyecto de cada plataforma (ya sea iOS, Android o Windows Phone). Este Renderer implementará el Renderer del que ya se dispone con Xamarin Forms. Para ello, basta con sobreescribir el método OnElementChanged , añadir la línea base.OnelementChanged(args) para implementar así todas las funcionalidades de las que disponía el método de la clase implementada. Por último, deberá añadirse todas las funcionalidades que se quieran editar. Para esto cada plataforma tiene sus propios atributos que modificar. Éste es el motivo por el cual se deben implementar por separado los distintos sistemas operativos, y no pueden compartir código.

El uso de este tipo de controles es muy sencillo e intuitivo, y permite personalizar a gusto del desarrollador, para darle a la aplicación nativa la imagen y la usabilidad deseada.

 

Nombre: Jose Carlos Quiroga Garre
Alumno del curso Microsoft MCSD
Centro Tajamar
Año Académico: 2015/2016
Código de ejemplo: https://github.com/JCQuiroga/EjemploCustomControls