6. dotNet Málaga
COMPARATIVA DE PLATAFORMAS MÓVILES. NATIVO
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. dotNet Málaga
COMPARATIVA DE PLATAFORMAS MÓVILES. XAMARIN
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
9. dotNet Málaga
PERO… ¿PORQUÉ MVVM?
• Mayor facilidad para mantener, extender
y compartir el código.
• Más facilidad a la hora de colaborar.
• Testing.
• Más fácil de diseñar.
10. dotNet Málaga
MVVMCROSS
•Cross Platform MVVM Development
Framework
•Gratuito, Open Source, Comunidad
•Soporta
•WP 7, 8, 8.1
•WPF
•WinRT
•Xamarin.Android
•Xamarin.iOS
•Xamarin.Mac
•AKA Mvx
12. dotNet Málaga
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
13. dotNet Málaga
MVVMCross & PCL
View
ViewModel
Model
Propiedades
Comandos
Notifica
cambios
C#
Model
View
View
ViewModel
ViewModel
Model
Model
Cross Platform -PCL
Específico de
Plataforma
48. dotNet Málaga
Navegación
Uso de parámetros
ShowViewModel<DetailViewModel>(new DetailParameters() { Index = 2 });
public void Init(DetailParameters parameters)
{
// use the parameters here
51. dotNet Málaga
Plugins
• Forma rápida y sencilla de añadir
funcionalidad específica de cada
plataforma.
• Usamos NuGet o NinjaCoder para
añadirlos.
• Consumimos los plugins utilizando
inyección de dependencias o Service
Locator.
• Disponibles: Location, PhoneCall,
Email, Sqlite, etc.
55. dotNet Málaga
COMPARATIVA DE PLATAFORMAS MÓVILES NATIVO
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
68. dotNet Málaga
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
69. dotNet Málaga
MVVMCross & PCL
View
ViewModel
Model
Propiedades
Comandos
Notifica
cambios
C#
Model
View
View
ViewModel
ViewModel
Model
Model
Cross Platform -PCL
Específico de
Plataforma
72. dotNet Málaga
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
73. dotNet Málaga
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
75. dotNet Málaga
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#
76. dotNet Málaga
UTILIZANDO XAMARIN CLASSIC
Web Services
Web Services Backend C#
App
Services
Services Services Services
Model
View Model
View View View
77. dotNet Málaga
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
78. dotNet Málaga
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.
3. No existe la abstracción absoluta. Sigue
siendo necesario conocer características
de cada plataforma.