Nuestro objetivo como desarrolladores es crear aplicaciones útil y atractivas pero sobretodo perfectamente funcionales. Para poder lograr ese objetivo es sin duda muy importante la arquitectura aplicada a la App. En esta sesión repasaremos el patrón MVVM aplicándolo a una aplicación Xamarin en cada una de las plataformas paso a paso así como la cantidad de código que se puede llegar a compartir entre plataformas.
2. COMPARTIR AL MÁXIMO
AVANTE
.
.
Javier Suárez
Microsoft MVP Windows Platform
Development
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
4. COMPARTIR AL MÁXIMO
AVANTE
.
.
COMPARATIVA DE PLATAFORMAS MÓVILES NATIV
IDE
Lenguaje
Vistas
iOS Android Windows
Phone
Xcode Android
Studio
Visual Studio
ObjectiveC o
Swift
Java C#
Storyboard AXML XAML
MVC MVC MVVMPatrón diseño
7. COMPARTIR AL MÁXIMO
AVANTE
.
.
El enfoque de Xamarin
Con Xamarin.Forms:
Se comparte más, controles compartidos
El enfoque tradicional de Xamarin
Shared UI Code
10. COMPARTIR AL MÁXIMO
AVANTE
.
.
MVVM EN APLICACIONES
UNIVERSALES
Data Binding
Comandos
Interfaz de Usuario Lógica de Negocio
Lógica de Negocio
Lógica de
Presentación
14. COMPARTIR AL MÁXIMO
AVANTE
.
.
COMPARATIVA DE PLATAFORMAS MÓVILES XAMA
IDE
Lenguaje
Vistas
iOS Android Windows
Phone
Visual Studio Visual Studio Visual Studio
C# C# C#
Storyboard AXML XAML
MVVM MVVM MVVMPatrón diseño
17. COMPARTIR AL MÁXIMO
AVANTE
.
.
CARACTERÍSTICAS DE UNA PORTABLE
CLASS LIBRARY
• Código compartido centralizado
• Se depura igual que si el código estuviese en un
Proyecto específico.
• Compartir Proyecto/Assembly
• NuGet
18. COMPARTIR AL MÁXIMO
AVANTE
.
.
MVVMCross & PCL
View
ViewModel
Model
Propiedades
Comandos
Notifica
cambios
C#
Model
View
View
ViewModel
ViewModel
Model
Model
Cross Platform -PCL
Específico de
Plataforma
21. COMPARTIR AL MÁXIMO
AVANTE
.
.
COMPARATIVA DE PLATAFORMAS MÓVILES
IDE
Lenguaje
Vistas
iOS Android Windows
Phone
Visual Studio Visual Studio Visual Studio
C# C# C#
XAML XAML XAML
MVVM MVVM MVVMPatrón diseño
22. COMPARTIR AL MÁXIMO
AVANTE
.
.
ARQUITECTURA DE APPS CON
XAMARIN.FORMS
View
ViewModel
Model
Propiedades
Comandos
Notifica
cambios
C#
Model
View
View
ViewModel
ViewModel
Model
Model
Cross Platform –PCL o Shared
24. COMPARTIR AL MÁXIMO
AVANTE
.
.
UTILIZANDO NATIVO
Web Services
Web Services Backend C#
App
Services Services Services
View View View
ViewModel Controller Controller
App App
Web Services Backend C# Web Services Backend C#
25. COMPARTIR AL MÁXIMO
AVANTE
.
.
UTILIZANDO XAMARIN CLASSIC
Web Services
Web Services Backend C#
App
Services
Services Services Services
Model
View Model
View View View
26. COMPARTIR AL MÁXIMO
AVANTE
.
.
UTILIZANDO XAMARIN.FORMS
Web Services
Web Services Backend C#
App
Services
Services (Implementation) Services (Implementation) Services (Implementation)
Model
View Model
View (Custom Render) View (Custom Render) View (Custom Render)
View
27. COMPARTIR AL MÁXIMO
AVANTE
.
.
CONCLUSIONES RÁPIDAS
1. Siendo ordenado y siguiendo una serie
de patrones podemos compartir entre el
65% y el 95% del código de una App
móvil multiplataforma.
2. Xamarin.Forms no es siempre la
solución más ideal dependiendo de las
características del Proyecto.
29. COMPARTIR AL MÁXIMO
AVANTE
.
.
GRACIAS a TODOS
Por vuestro tiempo!
Javier Suárez
Microsoft MVP Windows Platform Development
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
30. COMPARTIR AL MÁXIMO
AVANTE
.
.
CREANDO APPS COMPARTIENDO AL
MÁXIMOEstructura, trucos y otros aspectos de interes con el objetivo de compartir la mayor cantidad de código possible entre
plataformas.