SlideShare una empresa de Scribd logo
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

PPTX
Introducción a MvvmCross
PPTX
Introducción a las Aplicaciones Universales
PPTX
Composer...
PPTX
Introducción a las Apps Universales
PDF
Getting Started with ChatBots
PPTX
Publicación de Apps Universales
PPTX
Desarrollo para Microsoft Band con Xamarin
PDF
¿Desarrollar o no desarrollar?, he ahi el dilema!
Introducción a MvvmCross
Introducción a las Aplicaciones Universales
Composer...
Introducción a las Apps Universales
Getting Started with ChatBots
Publicación de Apps Universales
Desarrollo para Microsoft Band con Xamarin
¿Desarrollar o no desarrollar?, he ahi el dilema!

La actualidad más candente (20)

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

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

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

Último (6)

PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PPTX
sistemas de informacion.................
PPTX
Conceptos basicos de Base de Datos y sus propiedades
AutoCAD Herramientas para el futuro, Juan Fandiño
Derechos_de_Autor_y_Creative_Commons.pptx
Su punto de partida en la IA: Microsoft 365 Copilot Chat
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
sistemas de informacion.................
Conceptos basicos de Base de Datos y sus propiedades

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

  • #3: 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.
  • #11: 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" />