Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2

Share

Download to read offline

Arquitectura en Aplicaciones Xamarin

Download to read offline

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 utilizando MVVMCross.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Arquitectura en Aplicaciones Xamarin

  1. 1. Arquitectura de Apps Xamari Javier Suárez Ruiz
  2. 2. Javier Suárez Microsoft MVP Windows Platform Development • Blog: http://geeks.ms/blogs/jsuarez • Email: javiersuarezruiz@hotmail.com • Twitter: @jsuarezruiz
  3. 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. 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
  5. 5. Primer proyecto con Xamarin!
  6. 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. 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. 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. 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
  10. 10. MVVMView ViewModel Model get/set Propiedades Comandos Notifica cambios C# Models View View ViewModel ViewModel Model Model Cross Platform Específico de la Plataforma
  11. 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.
  12. 12. MvvmCross •Cross Platform MVVM Development Framework •Gratuito, Open Source •Soporta •WP 7, 8, 8.1 •WPF •WinRT •Xamarin.Android •Xamarin.iOS •Xamarin.Mac •AKA Mvx
  13. 13. Portable Class Library •1 Librería •Multiples Platformas •Incluyendo: •Xamarin.Android •Xamarin.iOS
  14. 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
  15. 15. MVVMCross & PCL View ViewModel Model Propiedades Comandos Notifica cambios C# Model View View ViewModel ViewModel Model Model Cross Platform -PCL Específico de Plataforma
  16. 16. INotifyPropertyChanged
  17. 17. Propriedad típica en la ViewModel
  18. 18. Binding OneWay PersonViewModel FirstName LastName DateOfBirth First Name Jon Last Name Doe Date of birth 12/07/1989
  19. 19. UI Syntax
  20. 20. Two Way Binding PersonViewModel FirstName LastName DateOfBirth First Name Jon Last Name Doe Date of birth 12/07/1989
  21. 21. UI Syntax
  22. 22. Nuestra primera App multiplataforma con Xamarin y MVVM Cross
  23. 23. Value Conversion PersonViewModel FirstName LastName DateOfBirth First Name Jon Last Name Doe Age 24 “Age” Conversion
  24. 24. IMvxValueConverter
  25. 25. AgeValueConverter
  26. 26. UI Syntax
  27. 27. UI Syntax
  28. 28. Trabajando con Converters
  29. 29. MyViewModel Necesita Localización Necesita SQL Necesita CalculadoraMy Tax Calculator Windows Phone Location Inversión de Control Windows Phone SQL El contenedor
  30. 30. MyViewModel Necesita Localización Necesita SQL Necesita CalculatorMy Tax Calculator iOS Location Inversión de Control iOS SQL El contenedor
  31. 31. Mvx.Register<T> • RegisterSingleton • Lazy - RegisterSingleton • RegisterType
  32. 32. Registro automático
  33. 33. Mvx.Resolve<T> • Resolve • CanResolve • TryResolve
  34. 34. Mvx Construction • Resolución en el constructor • IoCConstruct
  35. 35. Nuestro primer servicio y comenzamos a utilizer Ioc
  36. 36. Acciones (Comandos) PersonViewModel FirstName LastName DateOfBirth First Name Jon Last Name Doe Date of birth 12/07/1989 AddCommand
  37. 37. ICommand
  38. 38. Typical ViewModel Command
  39. 39. UI Syntax
  40. 40. Llega el turno de realizar acciones!
  41. 41. Colecciones PeopleViewModel Hackers List<PersonViewModel> Greg Jon Daniel Cool Hackers Jon @redth Greg @gshackles Daniel @dsplaisted Tomasz Tomasz @cheesebar
  42. 42. INotifyCollectionChanged
  43. 43. ObservableCollection
  44. 44. ViewModel Collection Property
  45. 45. UI Syntax
  46. 46. UI Syntax
  47. 47. UI Syntax
  48. 48. UI Syntax
  49. 49. Seguimos avanzando, trabajando con colecciones de datos y controles listado
  50. 50. Navegación Uso de parámetros ShowViewModel<DetailViewModel>(new DetailParameters() { Index = 2 }); public void Init(DetailParameters parameters) { // use the parameters here }
  51. 51. Go Back
  52. 52. Navegación entre páginas
  53. 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.
  54. 54. Añadiendo y utilizando plugins
  55. 55. Preguntas y respuestas. P&R ¿Dudas?
  56. 56. Javier Suárez Microsoft MVP Windows Platform Development • Blog: http://geeks.ms/blogs/jsuarez • Email: javiersuarezruiz@hotmail.com • Twitter: @jsuarezruiz GRACIAS
  57. 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
  • hispafox

    Apr. 7, 2019
  • felixangelcuellarcavazos

    Aug. 12, 2015

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 utilizando MVVMCross.

Views

Total views

5,165

On Slideshare

0

From embeds

0

Number of embeds

1,900

Actions

Downloads

90

Shares

0

Comments

0

Likes

2

×