Charla de introducción al desarrollo Xamarin - MVVMCross.
La presentación habla más que nada de las ventajas de Xamarin versus el desarrollo híbrido/HTML5, y los beneficios de usar MVVMCross como framework de desarrollo móvil.
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
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.