Aumentando reaproveitamento de código com MvvmCross

Preview:

Citation preview

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

Xamarin’s Unique Approach

Shared C# codebase • 100% native API access • High performance

iOS C# UI

Windows C# UIAndroid C# UI

Shared C# Mobile

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

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

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

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.

Tudo que você consegue fazer com Objective-C, Swift, ou Javapode ser feito em C# e Visual Studio com Xamarin

C# Backend Compartilhado

PlatformSpecific Code

UI+APIs UI + APIsUI + APIs

BatteryGPSLightsNotificationsSettingsText To Speech

BatteryGPSLightsNotificationsSettingsText To Speech

BatteryGPSLightsNotificationsSettingsText To Speech

Dem

oAplicativo Xamarin

Padrão Mvvm

Mvvm no Xamarin

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

Plataformas suportadas• iOS• Android• UWP• tvOS• Google Wear• Mac• iWatchE mais...

Recursos• Arquitetura flexível• PCL• Inversão de Controle• Injeção de dependência• Bindings• Converters• Testável• Plugins

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!

Plugins• Accelerometer• DownloadCache• Email• File• Localization• Location• SQLite

https://github.com/MvvmCross/MvvmCross-Plugins

Dem

oMvvmCrossMenos código repetido

w w w. l a m b d a 3 . c o m .b r

Dúvidas?

@akamudmahmoud.ali@lambda3.com.br