![Page 1: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/1.jpg)
w w w. l a m b d a 3 . c o m .b r
Aumentando reaproveitamento de código no Xamarin com MvvmCross
Mahmoud Ali – Desenvolvedor@akamud
![Page 2: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/2.jpg)
Xamarin’s Unique Approach
Shared C# codebase • 100% native API access • High performance
iOS C# UI
Windows C# UIAndroid C# UI
Shared C# Mobile
![Page 3: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/3.jpg)
Windows APIs
Microsoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
![Page 4: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/4.jpg)
iOS – 100% API Coverage
MapKit UIKit iBeacon CoreGraphics CoreMotion
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
![Page 5: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/5.jpg)
Android – 100% API Coverage
Text-to-speech ActionBar Printing Framework Renderscript NFC
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
![Page 6: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/6.jpg)
Native Performance
• Xamarin.iOS faz compilação Ahead of Time (AOT) em todo o código para produzir um binário ARM para a App Store da Apple.
• Xamarin.Android se aproveita dos benefícios da compilação Just In Time (JIT) no Android.
![Page 7: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/7.jpg)
Tudo que você consegue fazer com Objective-C, Swift, ou Javapode ser feito em C# e Visual Studio com Xamarin
![Page 8: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/8.jpg)
C# Backend Compartilhado
![Page 9: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/9.jpg)
PlatformSpecific Code
UI+APIs UI + APIsUI + APIs
BatteryGPSLightsNotificationsSettingsText To Speech
BatteryGPSLightsNotificationsSettingsText To Speech
BatteryGPSLightsNotificationsSettingsText To Speech
![Page 10: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/10.jpg)
Dem
oAplicativo Xamarin
![Page 11: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/11.jpg)
Padrão Mvvm
![Page 12: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/12.jpg)
Mvvm no Xamarin
![Page 13: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/13.jpg)
MvvmCross• Cross-platform• Suporte para todas as grandes plataformas (iOS, Android, UWP, etc.)• Open Source• Comunidade forte• “Convention over configuration”• Usado pos grandes empresas: Microsoft, Xamarin, Nokia, Olo
![Page 14: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/14.jpg)
Plataformas suportadas• iOS• Android• UWP• tvOS• Google Wear• Mac• iWatchE mais...
![Page 15: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/15.jpg)
Recursos• Arquitetura flexível• PCL• Inversão de Controle• Injeção de dependência• Bindings• Converters• Testável• Plugins
![Page 16: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/16.jpg)
Padrão Mvvm para Xamarin• Binding One-way e Two-way• Amarração das Views com ViewModels por convenção• FirstView <-> FirstViewModel
• Navegação entre telas automaticamente feita pela ViewModel• ShowViewModel<ViewModelType>()• Close()• Funciona com parâmetros!
![Page 17: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/17.jpg)
Plugins• Accelerometer• DownloadCache• Email• File• Localization• Location• SQLite
https://github.com/MvvmCross/MvvmCross-Plugins
![Page 18: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/18.jpg)
Dem
oMvvmCrossMenos código repetido
![Page 19: Aumentando reaproveitamento de código com MvvmCross](https://reader035.vdocument.in/reader035/viewer/2022062400/5871236a1a28abe4448b593b/html5/thumbnails/19.jpg)
Links• https://mvvmcross.com/• https://mvvmcross.com/docs/• https://github.com/mvvmcross/mvvmcross• https://github.com/MvvmCross/MvvmCross-Plugins• https://
github.com/MvvmCross/MvvmCross/wiki/N-1-Videos-Of-MvvmCross