SlideShare una empresa de Scribd logo
1 de 33
Custom Renderers Made Simple
Vicente Guzman
 Aspectos claves del desarrollo
 ¿Que es un Custom Renderer?
 ¿Cuándo son necesarios?
 ¿Por que crear un render?
Agenda
Rendy Del Rosario
 Creando un Custom Renderer paso a paso
 DEMO
 Ciclo de vida de un Custom Renderer
 Controles Nativos
 DEMO
Vicente G. Guzman Lucio
Senior Software Engineer
 luciomsp@geeks.ms
 @LucioMSP
Sobre mí
Aspectos claves del desarrollo móvil
Native User Interfaces Native API Access Native Performance
 ¿Puedo personalizar la apariencia o el comportamiento de un control existente?
 ¿Puedo utilizar controles nativos de cada plataforma con Xamarin.Forms?
 ¿Podemos crear o modificar elementos visuales de Xamarin.Forms?
Principales dudas…
¿Qué es un Custom Renderer?
Poderosa herramienta que nos permite
personalizar y crear nuevas controles.
Un Custom Renderer proporciona un
enfoque potente para personalizar la
apariencia y el comportamiento de los
controles Xamarin.Forms
Controles Nativos
Controles Nativos
 Elementos especificos de la plataforma
 Decoraciones de texto
 Sombras
 Bordes
¿Cuándo son necesarios?
Para utilizar controles nativos de cada plataforma
ó (visto desde otra perspectiva)
para crear una visualización específica para cada plataforma
Entonces…. ¿por qué crear un Renderer?
Rendy Del Rosario
Twitter: @rdelrosario
FB: RendyDelRosario
http://xamboy.com/
1-Crea un control custom de Xamarin.Forms
2-Crea el custom renderer del control por cada plataforma
3-Agrega el atributo ExportRenderer para especificar cual control usará este renderer
4-Consume el control en Xamarin.Forms
Creando un Custom Renderer paso a paso
1- Crea un control de Xamarin.Form
Crea una subclase del control de Xamarin Forms.
2- Crea el custom renderer del control por cada plataforma
2.1- Sobreescribe el método OnElementChanged del control nativo y escribe
dentro de este la lógica para personalizar el control.
2- Crea el custom renderer del control por cada plataforma
3- Agrega el atributo ExportRenderer para especificar cual control usará este renderer.
4- Consume el control customizado en Xamarin Forms
Agregar el NameSpace del control en tu XAML, con una variable (en este caso local)
Usa la variable : Nombre del control, para acceder al control
DEMO
Creando tu primer Control Custom
Ciclo de vida de un Custom Renderer
Este método se llama cuando el control de Xamarin.Forms es creado
Principales propiedades
- Acceso al control original de Forms
- Acceso al control nativo
 Un BindableProperty es un tipo especial de propiedad, donde el valor de la
propiedad es agregado al control. Esta puede ser accedida desde Xaml o
CodeBehind.
Propiedades Customizadas
DEMO
Agregar una propiedad a nuestro Renderer Actual
Controles Nativos
1- Crea tu control custom en el proyecto de Forms
2- Crea una subclase de la clase ViewRenderer <T1, T2> que procesa el control
personalizado.
3- Sobreescribe el método OnElementChanged y Asigna el control Nativo
4- Agrega el atributo ExportRenderer para especificar cual control usará este
renderer.
5- Consume el control en Xamarin.Forms
Creando un Control nativo Paso a Paso
1- Crea tu control custom en el proyecto de Forms
2- Crea una subclase de la clase ViewRenderer <T1, T2> que procesa el
control personalizado por plataforma
3- Sobreescribe el método OnElementChanged y Asigna el control Nativo
4- Agrega el atributo ExportRenderer para especificar cual
control usará este renderer
5- Consume el control en Xamarin.Forms
XAML
CODE
BEHIND
DEMO / Creación de un renderer nativo de un dibujador
Buenas Prácticas
 Xamarin- Documentación oficial
https://developer.xamarin.com/guides/xamarin-forms/application-
fundamentals/custom-renderer/
 Xamarin University: Custom Renderers in Xamarin.Forms
https://www.youtube.com/watch?v=55r1wHdOLBo
Referencias recomendadas
Gracias! Preguntas?
Vicente Guzman
luciomsp@geeks.ms
vicenteguzman.mx
@LucioMSP
Rendy Del Rosario
FB: RendyDelRosario
http://xamboy.com/
@rdelrosario

Más contenido relacionado

Similar a Custom Renderers Made Simple

Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.FormsJavier Suárez Ruiz
 
Aumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinAumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinJavier Suárez Ruiz
 
6.- DynaForms Avanzados v3.pptx
6.- DynaForms Avanzados v3.pptx6.- DynaForms Avanzados v3.pptx
6.- DynaForms Avanzados v3.pptxMariaJoseRobayo
 
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdfIntroduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdfEliasChoque14
 
INFOSAN VISUAL BASIC
INFOSAN VISUAL BASICINFOSAN VISUAL BASIC
INFOSAN VISUAL BASICFRANCIACOCO
 
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasosDesymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasosJavier Eguiluz
 
Women Who Code Bogota: Introduction to Xamarin Forms
Women Who Code Bogota: Introduction to Xamarin FormsWomen Who Code Bogota: Introduction to Xamarin Forms
Women Who Code Bogota: Introduction to Xamarin FormsLeomaris Reyes
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentosredtacna
 
Fundamentos vb
Fundamentos vbFundamentos vb
Fundamentos vbvalerin01
 
Dce2 introduccion win_forms
Dce2 introduccion win_formsDce2 introduccion win_forms
Dce2 introduccion win_formsguest85b8e5a
 
Dce2 Introduccion Win Forms
Dce2 Introduccion Win FormsDce2 Introduccion Win Forms
Dce2 Introduccion Win FormsEsteban Soraire
 

Similar a Custom Renderers Made Simple (20)

Introducción a Xamarin.Forms
Introducción a Xamarin.FormsIntroducción a Xamarin.Forms
Introducción a Xamarin.Forms
 
Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.Forms
 
Aumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinAumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas Xamarin
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
6.- DynaForms Avanzados v3.pptx
6.- DynaForms Avanzados v3.pptx6.- DynaForms Avanzados v3.pptx
6.- DynaForms Avanzados v3.pptx
 
Windows.forms.ejercicios
Windows.forms.ejerciciosWindows.forms.ejercicios
Windows.forms.ejercicios
 
Xamarin forms en el mundo real
Xamarin forms en el mundo realXamarin forms en el mundo real
Xamarin forms en el mundo real
 
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdfIntroduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
 
Introducción a Live XAML
Introducción a Live XAMLIntroducción a Live XAML
Introducción a Live XAML
 
INFOSAN VISUAL BASIC
INFOSAN VISUAL BASICINFOSAN VISUAL BASIC
INFOSAN VISUAL BASIC
 
Vb
VbVb
Vb
 
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasosDesymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
 
.NET Day Guatemala
.NET Day Guatemala.NET Day Guatemala
.NET Day Guatemala
 
primera aplicacion Xamarin.pptx
primera aplicacion Xamarin.pptxprimera aplicacion Xamarin.pptx
primera aplicacion Xamarin.pptx
 
Women Who Code Bogota: Introduction to Xamarin Forms
Women Who Code Bogota: Introduction to Xamarin FormsWomen Who Code Bogota: Introduction to Xamarin Forms
Women Who Code Bogota: Introduction to Xamarin Forms
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentos
 
Fundamentos vb
Fundamentos vbFundamentos vb
Fundamentos vb
 
Dce2 introduccion win_forms
Dce2 introduccion win_formsDce2 introduccion win_forms
Dce2 introduccion win_forms
 
Dce2 Introduccion Win Forms
Dce2 Introduccion Win FormsDce2 Introduccion Win Forms
Dce2 Introduccion Win Forms
 

Más de Vicente Gerardo Guzman Lucio

Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsVicente Gerardo Guzman Lucio
 
Consumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaConsumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaVicente Gerardo Guzman Lucio
 

Más de Vicente Gerardo Guzman Lucio (20)

GPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power AutomateGPPB2024 - Integrando ChatGPT en Power Automate
GPPB2024 - Integrando ChatGPT en Power Automate
 
Introducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptxIntroducción a Amazon Alexa.pptx
Introducción a Amazon Alexa.pptx
 
Creando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdfCreando un Chatbot en C# con ChatGPT.pdf
Creando un Chatbot en C# con ChatGPT.pdf
 
ChatGPT & Alexa.pptx
ChatGPT & Alexa.pptxChatGPT & Alexa.pptx
ChatGPT & Alexa.pptx
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
 
Conectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa SkillConectando un Azure Bot con una Alexa Skill
Conectando un Azure Bot con una Alexa Skill
 
Azure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web AssemblyAzure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web Assembly
 
Desarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa SkillsDesarrollo de Interfaces de Voz: Alexa Skills
Desarrollo de Interfaces de Voz: Alexa Skills
 
Blazor vs VUE
Blazor vs VUEBlazor vs VUE
Blazor vs VUE
 
Introducción a Blazor
Introducción a BlazorIntroducción a Blazor
Introducción a Blazor
 
Infraestructura como Código en Azure
Infraestructura como Código en AzureInfraestructura como Código en Azure
Infraestructura como Código en Azure
 
Diseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon AlexaDiseño de Experiencias de Voz con Amazon Alexa
Diseño de Experiencias de Voz con Amazon Alexa
 
Alexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS LambdaAlexa Skill con .NETCore & AWS Lambda
Alexa Skill con .NETCore & AWS Lambda
 
Skills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros PasosSkills Nights - Vol.III - Primeros Pasos
Skills Nights - Vol.III - Primeros Pasos
 
¿Qué es la Nube?
¿Qué es la Nube?¿Qué es la Nube?
¿Qué es la Nube?
 
Consumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en AlexaConsumiendo un servicio externo con Axios en Alexa
Consumiendo un servicio externo con Axios en Alexa
 
La era de los Chatbots
La era de los ChatbotsLa era de los Chatbots
La era de los Chatbots
 
Android 64x con Xamarin.Forms
Android 64x con Xamarin.FormsAndroid 64x con Xamarin.Forms
Android 64x con Xamarin.Forms
 
Creando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTubeCreando nuestra propia Skill de YouTube
Creando nuestra propia Skill de YouTube
 
Alexa Skill en 5 pasos
Alexa Skill en 5 pasosAlexa Skill en 5 pasos
Alexa Skill en 5 pasos
 

Custom Renderers Made Simple

  • 2. Vicente Guzman  Aspectos claves del desarrollo  ¿Que es un Custom Renderer?  ¿Cuándo son necesarios?  ¿Por que crear un render? Agenda Rendy Del Rosario  Creando un Custom Renderer paso a paso  DEMO  Ciclo de vida de un Custom Renderer  Controles Nativos  DEMO
  • 3. Vicente G. Guzman Lucio Senior Software Engineer  luciomsp@geeks.ms  @LucioMSP Sobre mí
  • 4. Aspectos claves del desarrollo móvil Native User Interfaces Native API Access Native Performance
  • 5.  ¿Puedo personalizar la apariencia o el comportamiento de un control existente?  ¿Puedo utilizar controles nativos de cada plataforma con Xamarin.Forms?  ¿Podemos crear o modificar elementos visuales de Xamarin.Forms? Principales dudas…
  • 6. ¿Qué es un Custom Renderer? Poderosa herramienta que nos permite personalizar y crear nuevas controles. Un Custom Renderer proporciona un enfoque potente para personalizar la apariencia y el comportamiento de los controles Xamarin.Forms
  • 9.  Elementos especificos de la plataforma  Decoraciones de texto  Sombras  Bordes ¿Cuándo son necesarios?
  • 10. Para utilizar controles nativos de cada plataforma ó (visto desde otra perspectiva) para crear una visualización específica para cada plataforma Entonces…. ¿por qué crear un Renderer?
  • 11. Rendy Del Rosario Twitter: @rdelrosario FB: RendyDelRosario http://xamboy.com/
  • 12. 1-Crea un control custom de Xamarin.Forms 2-Crea el custom renderer del control por cada plataforma 3-Agrega el atributo ExportRenderer para especificar cual control usará este renderer 4-Consume el control en Xamarin.Forms Creando un Custom Renderer paso a paso
  • 13. 1- Crea un control de Xamarin.Form Crea una subclase del control de Xamarin Forms.
  • 14. 2- Crea el custom renderer del control por cada plataforma
  • 15. 2.1- Sobreescribe el método OnElementChanged del control nativo y escribe dentro de este la lógica para personalizar el control. 2- Crea el custom renderer del control por cada plataforma
  • 16. 3- Agrega el atributo ExportRenderer para especificar cual control usará este renderer.
  • 17. 4- Consume el control customizado en Xamarin Forms Agregar el NameSpace del control en tu XAML, con una variable (en este caso local) Usa la variable : Nombre del control, para acceder al control
  • 18. DEMO Creando tu primer Control Custom
  • 19. Ciclo de vida de un Custom Renderer Este método se llama cuando el control de Xamarin.Forms es creado
  • 20. Principales propiedades - Acceso al control original de Forms - Acceso al control nativo
  • 21.  Un BindableProperty es un tipo especial de propiedad, donde el valor de la propiedad es agregado al control. Esta puede ser accedida desde Xaml o CodeBehind. Propiedades Customizadas
  • 22. DEMO Agregar una propiedad a nuestro Renderer Actual
  • 24. 1- Crea tu control custom en el proyecto de Forms 2- Crea una subclase de la clase ViewRenderer <T1, T2> que procesa el control personalizado. 3- Sobreescribe el método OnElementChanged y Asigna el control Nativo 4- Agrega el atributo ExportRenderer para especificar cual control usará este renderer. 5- Consume el control en Xamarin.Forms Creando un Control nativo Paso a Paso
  • 25. 1- Crea tu control custom en el proyecto de Forms
  • 26. 2- Crea una subclase de la clase ViewRenderer <T1, T2> que procesa el control personalizado por plataforma
  • 27. 3- Sobreescribe el método OnElementChanged y Asigna el control Nativo
  • 28. 4- Agrega el atributo ExportRenderer para especificar cual control usará este renderer
  • 29. 5- Consume el control en Xamarin.Forms XAML CODE BEHIND
  • 30. DEMO / Creación de un renderer nativo de un dibujador
  • 32.  Xamarin- Documentación oficial https://developer.xamarin.com/guides/xamarin-forms/application- fundamentals/custom-renderer/  Xamarin University: Custom Renderers in Xamarin.Forms https://www.youtube.com/watch?v=55r1wHdOLBo Referencias recomendadas
  • 33. Gracias! Preguntas? Vicente Guzman luciomsp@geeks.ms vicenteguzman.mx @LucioMSP Rendy Del Rosario FB: RendyDelRosario http://xamboy.com/ @rdelrosario

Notas del editor

  1. Xamarin.Forms es un toolkit que crea una abstracción sobre la interfaz de usuario de Android, iOS y Windows Phone permitiendo desarrollarla una única vez con código C# o Extensible Application Markup Language (XAML). Permite crear facilmente y con rapidez interfaces de usuario nativas compartidas donde  cada elemento visual en Xamarin.Forms son mapeados a elementos nativos y comportamientos propios de cada plataforma. Preguntas…. En esta sesion vamos a ver que podemos crear nuestras propias abstracciones ya sea modificando alguna de las existentes o partiendo desde prácticamente cero.