Este documento presenta una introducción a la arquitectura de aplicaciones móviles multiplataforma con Xamarin. Explica las diferencias en las arquitecturas nativas de iOS, Android y Windows Phone y cómo Xamarin permite el desarrollo multiplataforma con C# y el patrón MVVM. También introduce el framework MVVMCross y cómo permite compartir código entre plataformas mediante Portable Class Libraries, el uso de propiedades, comandos e INotifyPropertyChanged, y la inyección de dependencias.
2. Javier Suárez
Microsoft MVP Windows Platform
Development
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
3. ¿Qué vamos a ver?
1.Arquitectura de proyectos móviles en cada
plataforma.
2.El patron MVVM.
3.Introducción a MVVMCross.
4.Utilizando MVVMCross.
5.Preguntas y Respuestas.
4. 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
6. 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. 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
MVC MVC MVVM
Patrón diseño
8. 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 MVVM
Patrón diseño
9. Nuestros objetivos. Buenas prácticas
1. Reutilizar código
2. Utilizar MVVM
3. Utilizar inyección de dependencias para
resolver servicios y viewmodels
4. Dividir responsabilidades, dividir código
11. Pero… ¿Porque 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.
14. 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
53. 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.
56. Javier Suárez
Microsoft MVP Windows Platform Development
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
GRACIAS
57. Ven a conocer nuestras oficinas:
Avenida de Manoteras 38 – Oficina C311
28050 Madrid
Con Bravent tendrás proyectos cercanos. Conseguirás triunfos globales
Contacta con nosotros:
Llámanos:
91 240 4785
Envíanos un e-mail:
info@bravent.net
bravent@bravent.net
Visita nuestra web:
www.bravent.net
Síguenos en twitter:
@bravent