SlideShare una empresa de Scribd logo
1 de 12
Ivan Rodrigo Toledo Ivanovic
CTO de Birdie
Windows Development MVP
@itoledo – itoledo@birdie.cl
Nativo es mejor! Cierto que si…?
Android Windows Phone BlackBerry iPhone Windows 8
• Rendimiento
• UX/UI
• Diferenciación de plataformas
• Patrones de diseño
• Experiencia
Introducción: apps nativas versus híbridas
• Apps se desarrollan en .NET
• Linq, WCF, …
• Acceso nativo a las APIs de cada plataforma
• No es una herramienta de abstracción
• UI nativas (Layouts en Android, Storyboards en iOS)
• Reutilización de código .NET existente
• Librerías, paquetes NuGet, Componentes
• Integrado con Visual Studio
La respuesta es Xamarin
Demo: Xamarin.Android
Crear una calculadora que suma dos números
-Crea proyecto Android
-Crear 2 EditText, un TextView y un botón en layout principal
-Modificar el delegado del evento Click para que sume
Demo: Xamarin.iOS
La misma calculadora pero en iOS!
- Crear proyecto Universal
SingleViewApp
- Añadir las 2 cajas de texto y el
TextView
- Añadir delegado del evento
TouchDown para que sume
Compartiendo código: PCL
• Portable Class Libraries entregan un subconjunto común
de funcionalidad de .NET, disponible para todas las
plataformas
• Demo: creando una PCL y compartiendo código entre iOS
y Android
TextView, Label, TextBlock… Bindings?
-Mecánica de leer los textos y convertirlos a números desde
la UI está condenada a errores
-Este problema fue solucionado por Microsoft: ViewModels y
Bindings
-Demo: Calculadora en Windows Phone
Pero no hay Bindings en Android ni iOS! 
La solución es MvvmCross!
-Framework de desarrollo móvil basado en MVVM
-Plataformas iOS, Android, Windows Phone, Windows, Mac
-Lógica de pantallas se implementa en ViewModels
-Interfaces y Servicios abstraen la implementación
-Comandos enlazan acciones de la UI con los métodos del ViewModel
-Bindings en todas partes! 
Demo: Reimplementando en MvvmCross
• Crear Proyectos Calculadora.Core, Calculadora.Touch y
Calculadora.Droid
• Instalar paquete NuGet mvvmcross
• Modificar ViewModel y añadir N1, N2, Resultado,
SumarCommand
• Modificar vista para añadir Bindings
Hay mucho más por descubrir!
- Las series de videos de MvvmCross N+1
- Colección de plugins que implementan acceso nativo a
características de los dispositivos
Dudas, consultas?
- Unirse al Meetup de Xamarin!
- Escribirme a itoledo@birdie.cl o @itoledo

Más contenido relacionado

La actualidad más candente

Herramientas para el desarrollo de Apps Universales
Herramientas para el desarrollo de Apps UniversalesHerramientas para el desarrollo de Apps Universales
Herramientas para el desarrollo de Apps UniversalesJavier Suárez Ruiz
 
Presentación dreamweaver1
Presentación dreamweaver1Presentación dreamweaver1
Presentación dreamweaver1magnafe
 
Presentación dreamweaver
Presentación dreamweaverPresentación dreamweaver
Presentación dreamweavermagnafe
 
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...Luis Fernando Aguas Bucheli
 
Windows Phone 8 en Campus Party
Windows Phone 8 en Campus PartyWindows Phone 8 en Campus Party
Windows Phone 8 en Campus PartySorey García
 
[Evento WPSUG] Universal Windows Platform Bridges
[Evento WPSUG] Universal Windows Platform Bridges[Evento WPSUG] Universal Windows Platform Bridges
[Evento WPSUG] Universal Windows Platform BridgesJavier Suárez Ruiz
 
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .netLuis Fernando Aguas Bucheli
 
#Win8JSApps | 4.- Métodos de desarrollo
#Win8JSApps | 4.- Métodos de desarrollo#Win8JSApps | 4.- Métodos de desarrollo
#Win8JSApps | 4.- Métodos de desarrolloQuique Fdez Guerra
 
Every Thing One Needs To Understand About Purchasing Less Expensive Programa ...
Every Thing One Needs To Understand About Purchasing Less Expensive Programa ...Every Thing One Needs To Understand About Purchasing Less Expensive Programa ...
Every Thing One Needs To Understand About Purchasing Less Expensive Programa ...ease3bubble
 
Presentación dreamweaver
Presentación dreamweaverPresentación dreamweaver
Presentación dreamweavermagnafe
 
Editores de Pagina Web
Editores de Pagina WebEditores de Pagina Web
Editores de Pagina WebHectlys Piña
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con PhonegapMauro Parra-Miranda
 

La actualidad más candente (20)

Xamarin forms Xaml + C#
Xamarin forms Xaml + C#Xamarin forms Xaml + C#
Xamarin forms Xaml + C#
 
Herramientas para el desarrollo de Apps Universales
Herramientas para el desarrollo de Apps UniversalesHerramientas para el desarrollo de Apps Universales
Herramientas para el desarrollo de Apps Universales
 
Introducción a Windows UI
Introducción a Windows UIIntroducción a Windows UI
Introducción a Windows UI
 
Visual studio codespaces + azure devops
Visual studio codespaces + azure devopsVisual studio codespaces + azure devops
Visual studio codespaces + azure devops
 
Sencha ExtJS introduccion
Sencha ExtJS introduccion Sencha ExtJS introduccion
Sencha ExtJS introduccion
 
Presentación dreamweaver1
Presentación dreamweaver1Presentación dreamweaver1
Presentación dreamweaver1
 
Presentación dreamweaver
Presentación dreamweaverPresentación dreamweaver
Presentación dreamweaver
 
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
 
Blazor vs VUE
Blazor vs VUEBlazor vs VUE
Blazor vs VUE
 
Windows Phone 8 en Campus Party
Windows Phone 8 en Campus PartyWindows Phone 8 en Campus Party
Windows Phone 8 en Campus Party
 
[Evento WPSUG] Universal Windows Platform Bridges
[Evento WPSUG] Universal Windows Platform Bridges[Evento WPSUG] Universal Windows Platform Bridges
[Evento WPSUG] Universal Windows Platform Bridges
 
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
5- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net
 
#Win8JSApps | 4.- Métodos de desarrollo
#Win8JSApps | 4.- Métodos de desarrollo#Win8JSApps | 4.- Métodos de desarrollo
#Win8JSApps | 4.- Métodos de desarrollo
 
Every Thing One Needs To Understand About Purchasing Less Expensive Programa ...
Every Thing One Needs To Understand About Purchasing Less Expensive Programa ...Every Thing One Needs To Understand About Purchasing Less Expensive Programa ...
Every Thing One Needs To Understand About Purchasing Less Expensive Programa ...
 
Presentación dreamweaver
Presentación dreamweaverPresentación dreamweaver
Presentación dreamweaver
 
diferencias entre versiones de sencha ext js
diferencias entre versiones de sencha ext jsdiferencias entre versiones de sencha ext js
diferencias entre versiones de sencha ext js
 
Introducción a Blazor
Introducción a BlazorIntroducción a Blazor
Introducción a Blazor
 
Editores de Pagina Web
Editores de Pagina WebEditores de Pagina Web
Editores de Pagina Web
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con Phonegap
 
Comparacion
Comparacion Comparacion
Comparacion
 

Similar a Desarrollando apps multiplataforma con Xamarin y MVVMCross

Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Luis Beltran
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSJavier Suárez Ruiz
 
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsTech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsJavier Suárez Ruiz
 
De Windows Phone App Studio a la Store
De Windows Phone App Studio a la StoreDe Windows Phone App Studio a la Store
De Windows Phone App Studio a la StoreJavier Suárez Ruiz
 
Herramientas de colaboración digital(3er gye tech)
Herramientas de colaboración digital(3er gye tech)Herramientas de colaboración digital(3er gye tech)
Herramientas de colaboración digital(3er gye tech)Adolfo Monar
 
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptxCOECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptxLuis Beltran
 
Microsoft Visual Studio Universidad OYM Seccion 0435
Microsoft Visual Studio Universidad OYM Seccion 0435Microsoft Visual Studio Universidad OYM Seccion 0435
Microsoft Visual Studio Universidad OYM Seccion 0435Scarlett Rodriiguez
 
365663015-Presentacion-Windows-Form-C-convertido.pptx
365663015-Presentacion-Windows-Form-C-convertido.pptx365663015-Presentacion-Windows-Form-C-convertido.pptx
365663015-Presentacion-Windows-Form-C-convertido.pptxBrandonContreras19
 
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...Sorey García
 
02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7tGabo Mizhel
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkitCesar Escalante
 
Lenguaje de programacion de visual basic
Lenguaje de programacion de visual basicLenguaje de programacion de visual basic
Lenguaje de programacion de visual basicRosa Marina Mosquera
 
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012Rodolfo Finochietti
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017Diego Bersano
 

Similar a Desarrollando apps multiplataforma con Xamarin y MVVMCross (20)

Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
 
Desktop App Converter
Desktop App ConverterDesktop App Converter
Desktop App Converter
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOS
 
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsTech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
 
Introduccion a Xamarin
Introduccion a XamarinIntroduccion a Xamarin
Introduccion a Xamarin
 
De Windows Phone App Studio a la Store
De Windows Phone App Studio a la StoreDe Windows Phone App Studio a la Store
De Windows Phone App Studio a la Store
 
Herramientas de colaboración digital(3er gye tech)
Herramientas de colaboración digital(3er gye tech)Herramientas de colaboración digital(3er gye tech)
Herramientas de colaboración digital(3er gye tech)
 
Vuelven los "Pelochos"
Vuelven los "Pelochos"Vuelven los "Pelochos"
Vuelven los "Pelochos"
 
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptxCOECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
 
Microsoft Visual Studio Universidad OYM Seccion 0435
Microsoft Visual Studio Universidad OYM Seccion 0435Microsoft Visual Studio Universidad OYM Seccion 0435
Microsoft Visual Studio Universidad OYM Seccion 0435
 
365663015-Presentacion-Windows-Form-C-convertido.pptx
365663015-Presentacion-Windows-Form-C-convertido.pptx365663015-Presentacion-Windows-Form-C-convertido.pptx
365663015-Presentacion-Windows-Form-C-convertido.pptx
 
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
 
Mono Develop
Mono DevelopMono Develop
Mono Develop
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 
02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkit
 
Lenguaje de programacion de visual basic
Lenguaje de programacion de visual basicLenguaje de programacion de visual basic
Lenguaje de programacion de visual basic
 
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017
 
Introducción a xamarin
Introducción a xamarinIntroducción a xamarin
Introducción a xamarin
 

Último

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 

Último (7)

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 

Desarrollando apps multiplataforma con Xamarin y MVVMCross

  • 1. Ivan Rodrigo Toledo Ivanovic CTO de Birdie Windows Development MVP @itoledo – itoledo@birdie.cl
  • 2. Nativo es mejor! Cierto que si…? Android Windows Phone BlackBerry iPhone Windows 8
  • 3. • Rendimiento • UX/UI • Diferenciación de plataformas • Patrones de diseño • Experiencia Introducción: apps nativas versus híbridas
  • 4. • Apps se desarrollan en .NET • Linq, WCF, … • Acceso nativo a las APIs de cada plataforma • No es una herramienta de abstracción • UI nativas (Layouts en Android, Storyboards en iOS) • Reutilización de código .NET existente • Librerías, paquetes NuGet, Componentes • Integrado con Visual Studio La respuesta es Xamarin
  • 5. Demo: Xamarin.Android Crear una calculadora que suma dos números -Crea proyecto Android -Crear 2 EditText, un TextView y un botón en layout principal -Modificar el delegado del evento Click para que sume
  • 6. Demo: Xamarin.iOS La misma calculadora pero en iOS! - Crear proyecto Universal SingleViewApp - Añadir las 2 cajas de texto y el TextView - Añadir delegado del evento TouchDown para que sume
  • 7. Compartiendo código: PCL • Portable Class Libraries entregan un subconjunto común de funcionalidad de .NET, disponible para todas las plataformas • Demo: creando una PCL y compartiendo código entre iOS y Android
  • 8. TextView, Label, TextBlock… Bindings? -Mecánica de leer los textos y convertirlos a números desde la UI está condenada a errores -Este problema fue solucionado por Microsoft: ViewModels y Bindings -Demo: Calculadora en Windows Phone
  • 9. Pero no hay Bindings en Android ni iOS!  La solución es MvvmCross! -Framework de desarrollo móvil basado en MVVM -Plataformas iOS, Android, Windows Phone, Windows, Mac -Lógica de pantallas se implementa en ViewModels -Interfaces y Servicios abstraen la implementación -Comandos enlazan acciones de la UI con los métodos del ViewModel -Bindings en todas partes! 
  • 10. Demo: Reimplementando en MvvmCross • Crear Proyectos Calculadora.Core, Calculadora.Touch y Calculadora.Droid • Instalar paquete NuGet mvvmcross • Modificar ViewModel y añadir N1, N2, Resultado, SumarCommand • Modificar vista para añadir Bindings
  • 11. Hay mucho más por descubrir! - Las series de videos de MvvmCross N+1 - Colección de plugins que implementan acceso nativo a características de los dispositivos
  • 12. Dudas, consultas? - Unirse al Meetup de Xamarin! - Escribirme a itoledo@birdie.cl o @itoledo

Notas del editor

  1. Hacer el mismo trabajo 5 veces, en 4 plataformas diferentes, es agotador. Hay un límite para las veces que a uno le gustaría programar la misma rutina (como deserializar un JSON) Requiere un alto grado de dedicación y desarrolladores experimentados, dispuestos a invertir mucho tiempo en aprender distintas formas de hacer lo mismo.
  2. xmlns:local="http://schemas.android.com/apk/res-auto“ local:MvxBind="Text N1" /> local:MvxBind="Text N2" /> local:MvxBind="Text Resultado" /> local:MvxBind="Click SumarCommand" />