SlideShare uma empresa Scribd logo
Desenvolvimento
multiplataforma com
Xamarin e MVVM: da
arquitetura a UIs específicas
Alexandre Chohfi
Microsoft Windows Platform Development MVP
Silo Approach
Write-Once-Run-Anywhere Approach
Shared App Logic in C#
iOS C# UI Android C# UI Windows C# UI
Lógica do App Compartilhada
Xamarin Approach
C# on 2.6 billion devices
100% de cobertura
Xamarin
• Qualquer coisa que você pode fazer em Objective-
C ou Java pode ser feito em C# com Xamarin
usando o Visual Studio (ou não)
• Designer de Storyboard do iOS integrado no VS
• Designer dos XMLs do Android integrado no VS
Nativo!
Aplicativos Xamarin parecem nativos porque SÃO nativos
User Interfaces Nativas Acesso a APIs Nativas Performance Nativa
MVVMCross
• Android
• iOS
• Windows Phone
• Windows Store App (Windows 8)
• WPF
• MacOS
MVVMCross
• OpenSource (GitHub)
• Arquitetura
• Model
• ViewModel
• Commands
• Properties
• View
• UI
• Binding
• Plugins!
• Testável
Commands
• É a forma da View notificar a ViewModel que
alguma coisa aconteceu na UI (botão pressionado,
por exemplo).
• Pode ter parâmetros
Properties
• É a forma da ViewModel informar dados (texto,
inteiro, listas, etc) à ViewModel.
Binding
• Especifica o mapeamento entre os controles da
View(UI) com as propriedades/commands da
ViewModel.
• OneWay, TwoWay
• Fallback
• Converter (bool na VM pode ser Visibility
específico da plataforma na View)
Navigation (animal!)
• Entre telas
• Leia-se ViewModel
• ShowViewModel<ViewModelType>()
• Close()
Plugins
• Forma mais formal(?) de permitir código específico
de plataformas de ser injetado
• Muuuuuuuuuitos já prontos
• Vou para o próximo slide para maximixar o uso do
espaço
• Uma DLL por plataforma e uma DLL common
(normalmente só com lógica e uma Interface)
Plugins oficiais
• Accelerometer(*)
• Bookmarks
• Color(*)
• DownloadCache(*)
• Email
• FieldBinding
• File(***)
• Json
• JsonLocalisation
• Location(*)
• Messenger(**)
• MethodBinding
• Network
• PhoneCall
• PictureChooser(*)
• ReflectionEx
• ResourceLoader
• Share
• SoundEffects
• Sqlite
• ThreadUtils
• Visibility(**)
• WebBrowser
Plugins não oficiais (busca rápida
NuGet)
• AppId
• BarCode (Zxing, MUITO BOM!)
• SecureStorage
• Analytics (Google)
• GeoCoder
• Connectivity
• Notifications
• SMS
Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs específicas - QCon SP 2015

Mais conteúdo relacionado

Mais procurados

Xamarin Introdução
Xamarin IntroduçãoXamarin Introdução
Xamarin Introduçãoakamud
 
Entendendo Xamarin.Forms V2
Entendendo Xamarin.Forms V2Entendendo Xamarin.Forms V2
Entendendo Xamarin.Forms V2Letticia Nicoli
 
Desenvolvendo e portando App C# para Android e Iphone
Desenvolvendo e portando App C# para Android e IphoneDesenvolvendo e portando App C# para Android e Iphone
Desenvolvendo e portando App C# para Android e IphoneAlessandro Binhara
 
Entendendo Xamarin.Forms
Entendendo Xamarin.FormsEntendendo Xamarin.Forms
Entendendo Xamarin.FormsLetticia Nicoli
 
Introdução ao Xamarin Forms
Introdução ao Xamarin FormsIntrodução ao Xamarin Forms
Introdução ao Xamarin FormsStudyxnet
 
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteiraTDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteiratdc-globalcode
 
Desenvolvimento Cross-Mobile com Xamarin
Desenvolvimento Cross-Mobile com Xamarin Desenvolvimento Cross-Mobile com Xamarin
Desenvolvimento Cross-Mobile com Xamarin Letticia Nicoli
 
100% de código compartilhado com Xamarin.Forms
100% de código compartilhado com Xamarin.Forms100% de código compartilhado com Xamarin.Forms
100% de código compartilhado com Xamarin.Formsakamud
 
Desenvolvimento Cross-mobile com Xamarin
Desenvolvimento Cross-mobile com XamarinDesenvolvimento Cross-mobile com Xamarin
Desenvolvimento Cross-mobile com Xamarinakamud
 
Aplicativos Híbridos e Xamarin Test Cloud
Aplicativos Híbridos e Xamarin Test CloudAplicativos Híbridos e Xamarin Test Cloud
Aplicativos Híbridos e Xamarin Test Cloudakamud
 
Xamarin - Como Otimizar o Desenvolvimento Mobile Multiplataforma
Xamarin - Como Otimizar o Desenvolvimento Mobile MultiplataformaXamarin - Como Otimizar o Desenvolvimento Mobile Multiplataforma
Xamarin - Como Otimizar o Desenvolvimento Mobile MultiplataformaXpand IT
 
Aumentando reaproveitamento de código com MvvmCross
Aumentando reaproveitamento de código com MvvmCrossAumentando reaproveitamento de código com MvvmCross
Aumentando reaproveitamento de código com MvvmCrossakamud
 
Animation com Xamarin.Forms e Custom Renderers
Animation com Xamarin.Forms e Custom RenderersAnimation com Xamarin.Forms e Custom Renderers
Animation com Xamarin.Forms e Custom Renderersakamud
 
Animation com Xamarin.Forms e Custom Renderers
Animation com Xamarin.Forms e Custom RenderersAnimation com Xamarin.Forms e Custom Renderers
Animation com Xamarin.Forms e Custom Renderersakamud
 
Desenvolvimento cross-platform em C# com Xamarin - 2018
Desenvolvimento cross-platform em C# com Xamarin - 2018Desenvolvimento cross-platform em C# com Xamarin - 2018
Desenvolvimento cross-platform em C# com Xamarin - 2018akamud
 
Visual Studio Summit 2014 - Portable Class Library
Visual Studio Summit 2014 - Portable Class LibraryVisual Studio Summit 2014 - Portable Class Library
Visual Studio Summit 2014 - Portable Class LibraryThiago Lunardi
 
TDC2016SP - Xamarin.Forms: Uma experiência real de um app iOS e Android com 9...
TDC2016SP - Xamarin.Forms: Uma experiência real de um app iOS e Android com 9...TDC2016SP - Xamarin.Forms: Uma experiência real de um app iOS e Android com 9...
TDC2016SP - Xamarin.Forms: Uma experiência real de um app iOS e Android com 9...tdc-globalcode
 
Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?akamud
 

Mais procurados (20)

Xamarin Introdução
Xamarin IntroduçãoXamarin Introdução
Xamarin Introdução
 
Entendendo Xamarin.Forms V2
Entendendo Xamarin.Forms V2Entendendo Xamarin.Forms V2
Entendendo Xamarin.Forms V2
 
Desenvolvendo e portando App C# para Android e Iphone
Desenvolvendo e portando App C# para Android e IphoneDesenvolvendo e portando App C# para Android e Iphone
Desenvolvendo e portando App C# para Android e Iphone
 
Entendendo Xamarin.Forms
Entendendo Xamarin.FormsEntendendo Xamarin.Forms
Entendendo Xamarin.Forms
 
Introdução ao Xamarin Forms
Introdução ao Xamarin FormsIntrodução ao Xamarin Forms
Introdução ao Xamarin Forms
 
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteiraTDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
TDC2016SP - Entrega Contínua com Xamarin: Monte sua esteira
 
Desenvolvimento Cross-Mobile com Xamarin
Desenvolvimento Cross-Mobile com Xamarin Desenvolvimento Cross-Mobile com Xamarin
Desenvolvimento Cross-Mobile com Xamarin
 
100% de código compartilhado com Xamarin.Forms
100% de código compartilhado com Xamarin.Forms100% de código compartilhado com Xamarin.Forms
100% de código compartilhado com Xamarin.Forms
 
Desenvolvimento Cross-mobile com Xamarin
Desenvolvimento Cross-mobile com XamarinDesenvolvimento Cross-mobile com Xamarin
Desenvolvimento Cross-mobile com Xamarin
 
Aplicativos Híbridos e Xamarin Test Cloud
Aplicativos Híbridos e Xamarin Test CloudAplicativos Híbridos e Xamarin Test Cloud
Aplicativos Híbridos e Xamarin Test Cloud
 
Xamarin - Como Otimizar o Desenvolvimento Mobile Multiplataforma
Xamarin - Como Otimizar o Desenvolvimento Mobile MultiplataformaXamarin - Como Otimizar o Desenvolvimento Mobile Multiplataforma
Xamarin - Como Otimizar o Desenvolvimento Mobile Multiplataforma
 
Aumentando reaproveitamento de código com MvvmCross
Aumentando reaproveitamento de código com MvvmCrossAumentando reaproveitamento de código com MvvmCross
Aumentando reaproveitamento de código com MvvmCross
 
Animation com Xamarin.Forms e Custom Renderers
Animation com Xamarin.Forms e Custom RenderersAnimation com Xamarin.Forms e Custom Renderers
Animation com Xamarin.Forms e Custom Renderers
 
Mobile Brazil Conference - Xamarin Test Cloud
Mobile Brazil Conference - Xamarin Test CloudMobile Brazil Conference - Xamarin Test Cloud
Mobile Brazil Conference - Xamarin Test Cloud
 
Animation com Xamarin.Forms e Custom Renderers
Animation com Xamarin.Forms e Custom RenderersAnimation com Xamarin.Forms e Custom Renderers
Animation com Xamarin.Forms e Custom Renderers
 
Desenvolvimento cross-platform em C# com Xamarin - 2018
Desenvolvimento cross-platform em C# com Xamarin - 2018Desenvolvimento cross-platform em C# com Xamarin - 2018
Desenvolvimento cross-platform em C# com Xamarin - 2018
 
Microsoft Xamarin
Microsoft XamarinMicrosoft Xamarin
Microsoft Xamarin
 
Visual Studio Summit 2014 - Portable Class Library
Visual Studio Summit 2014 - Portable Class LibraryVisual Studio Summit 2014 - Portable Class Library
Visual Studio Summit 2014 - Portable Class Library
 
TDC2016SP - Xamarin.Forms: Uma experiência real de um app iOS e Android com 9...
TDC2016SP - Xamarin.Forms: Uma experiência real de um app iOS e Android com 9...TDC2016SP - Xamarin.Forms: Uma experiência real de um app iOS e Android com 9...
TDC2016SP - Xamarin.Forms: Uma experiência real de um app iOS e Android com 9...
 
Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?
 

Destaque

Xamarin 4 - the future of apps
Xamarin 4  - the future of appsXamarin 4  - the future of apps
Xamarin 4 - the future of appsJames Montemagno
 
Llevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móvilesLlevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móvilesJosué Yeray Julián Ferreiro
 
Arquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones XamarinArquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones XamarinJavier Suárez Ruiz
 
Application Insights + Apps Mobile Híbridos
Application Insights + Apps Mobile HíbridosApplication Insights + Apps Mobile Híbridos
Application Insights + Apps Mobile HíbridosLetticia Nicoli
 
Xamarin Traditional Approach & Xamarin.Forms
Xamarin Traditional Approach & Xamarin.FormsXamarin Traditional Approach & Xamarin.Forms
Xamarin Traditional Approach & Xamarin.FormsWilliam S. Rodriguez
 
Desenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoDesenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoLetticia Nicoli
 
Introducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossIntroducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossJavier Suárez Ruiz
 
Xamarin Fest Santo Domingo ( introduccion)
Xamarin  Fest Santo Domingo ( introduccion)Xamarin  Fest Santo Domingo ( introduccion)
Xamarin Fest Santo Domingo ( introduccion)Yhorby Matias
 

Destaque (14)

Abertura #DotNetConf #Curitiba
Abertura #DotNetConf #CuritibaAbertura #DotNetConf #Curitiba
Abertura #DotNetConf #Curitiba
 
Mercado Digital | A verdadeira Revolução
Mercado Digital | A verdadeira RevoluçãoMercado Digital | A verdadeira Revolução
Mercado Digital | A verdadeira Revolução
 
Xamarin 4 - the future of apps
Xamarin 4  - the future of appsXamarin 4  - the future of apps
Xamarin 4 - the future of apps
 
Xamarin forms Xaml + C#
Xamarin forms Xaml + C#Xamarin forms Xaml + C#
Xamarin forms Xaml + C#
 
Llevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móvilesLlevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móviles
 
Introdução ao Azure Mobile Apps
Introdução ao Azure Mobile AppsIntrodução ao Azure Mobile Apps
Introdução ao Azure Mobile Apps
 
Arquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones XamarinArquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones Xamarin
 
Application Insights + Apps Mobile Híbridos
Application Insights + Apps Mobile HíbridosApplication Insights + Apps Mobile Híbridos
Application Insights + Apps Mobile Híbridos
 
Xamarin Traditional Approach & Xamarin.Forms
Xamarin Traditional Approach & Xamarin.FormsXamarin Traditional Approach & Xamarin.Forms
Xamarin Traditional Approach & Xamarin.Forms
 
Desenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoDesenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x Nativo
 
Introducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossIntroducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCross
 
Windows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - BrasilWindows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - Brasil
 
Xamarin & Realm
Xamarin & RealmXamarin & Realm
Xamarin & Realm
 
Xamarin Fest Santo Domingo ( introduccion)
Xamarin  Fest Santo Domingo ( introduccion)Xamarin  Fest Santo Domingo ( introduccion)
Xamarin Fest Santo Domingo ( introduccion)
 

Semelhante a Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs específicas - QCon SP 2015

Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutosakamud
 
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?Letticia Nicoli
 
Construindo Aplicativos Android Nativos com C#
Construindo Aplicativos Android Nativos com C#Construindo Aplicativos Android Nativos com C#
Construindo Aplicativos Android Nativos com C#William S. Rodriguez
 
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Letticia Nicoli
 
Xamarin - Dev Day 2015
Xamarin - Dev Day 2015Xamarin - Dev Day 2015
Xamarin - Dev Day 2015Studyxnet
 
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Letticia Nicoli
 
Dotnet conflocal Salvador 2016 - Xamarin.Forms
Dotnet conflocal Salvador 2016 - Xamarin.FormsDotnet conflocal Salvador 2016 - Xamarin.Forms
Dotnet conflocal Salvador 2016 - Xamarin.FormsAlisson Sena, MBA
 
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraTDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraDiego Gabriel Cardoso
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileakamud
 
Universal Windows Platform Bridges
Universal Windows Platform BridgesUniversal Windows Platform Bridges
Universal Windows Platform BridgesCaio Chaves Garcez
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-PlatformAdriel Café
 
Win301 caio garcez_uwp_bridges
Win301 caio garcez_uwp_bridgesWin301 caio garcez_uwp_bridges
Win301 caio garcez_uwp_bridgesCaio Chaves Garcez
 
Desenvolvendo para Windows Phone InfoTech 2013
Desenvolvendo para Windows Phone InfoTech 2013Desenvolvendo para Windows Phone InfoTech 2013
Desenvolvendo para Windows Phone InfoTech 2013André Paulovich
 
Desenvolvendo para Windows Phone
Desenvolvendo para Windows PhoneDesenvolvendo para Windows Phone
Desenvolvendo para Windows Phoneanybalrocha
 
Alerando o desenvolvimento de aplicativos Android e iOS com Xamarin Forms
Alerando o desenvolvimento de aplicativos Android e iOS com Xamarin FormsAlerando o desenvolvimento de aplicativos Android e iOS com Xamarin Forms
Alerando o desenvolvimento de aplicativos Android e iOS com Xamarin FormsRobson Soares Amorim
 
TDC2016SP - Xamarin Test Cloud: Testes de UI cross-mobile
TDC2016SP - Xamarin Test Cloud: Testes de UI cross-mobileTDC2016SP - Xamarin Test Cloud: Testes de UI cross-mobile
TDC2016SP - Xamarin Test Cloud: Testes de UI cross-mobiletdc-globalcode
 
Desktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows StoreDesktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows StoreIgor Abade
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileWaldyr Felix
 

Semelhante a Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs específicas - QCon SP 2015 (20)

Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutos
 
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
 
Construindo Aplicativos Android Nativos com C#
Construindo Aplicativos Android Nativos com C#Construindo Aplicativos Android Nativos com C#
Construindo Aplicativos Android Nativos com C#
 
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
 
Xamarin - Dev Day 2015
Xamarin - Dev Day 2015Xamarin - Dev Day 2015
Xamarin - Dev Day 2015
 
Watch & Wear com Xamarin e C#
Watch & Wear com Xamarin e C#Watch & Wear com Xamarin e C#
Watch & Wear com Xamarin e C#
 
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
 
iBeer #2 - Xamarin
iBeer #2 - XamariniBeer #2 - Xamarin
iBeer #2 - Xamarin
 
Dotnet conflocal Salvador 2016 - Xamarin.Forms
Dotnet conflocal Salvador 2016 - Xamarin.FormsDotnet conflocal Salvador 2016 - Xamarin.Forms
Dotnet conflocal Salvador 2016 - Xamarin.Forms
 
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraTDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
 
Universal Windows Platform Bridges
Universal Windows Platform BridgesUniversal Windows Platform Bridges
Universal Windows Platform Bridges
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-Platform
 
Win301 caio garcez_uwp_bridges
Win301 caio garcez_uwp_bridgesWin301 caio garcez_uwp_bridges
Win301 caio garcez_uwp_bridges
 
Desenvolvendo para Windows Phone InfoTech 2013
Desenvolvendo para Windows Phone InfoTech 2013Desenvolvendo para Windows Phone InfoTech 2013
Desenvolvendo para Windows Phone InfoTech 2013
 
Desenvolvendo para Windows Phone
Desenvolvendo para Windows PhoneDesenvolvendo para Windows Phone
Desenvolvendo para Windows Phone
 
Alerando o desenvolvimento de aplicativos Android e iOS com Xamarin Forms
Alerando o desenvolvimento de aplicativos Android e iOS com Xamarin FormsAlerando o desenvolvimento de aplicativos Android e iOS com Xamarin Forms
Alerando o desenvolvimento de aplicativos Android e iOS com Xamarin Forms
 
TDC2016SP - Xamarin Test Cloud: Testes de UI cross-mobile
TDC2016SP - Xamarin Test Cloud: Testes de UI cross-mobileTDC2016SP - Xamarin Test Cloud: Testes de UI cross-mobile
TDC2016SP - Xamarin Test Cloud: Testes de UI cross-mobile
 
Desktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows StoreDesktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows Store
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento Mobile
 

Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs específicas - QCon SP 2015

  • 1. Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs específicas Alexandre Chohfi Microsoft Windows Platform Development MVP
  • 4.
  • 5. Shared App Logic in C# iOS C# UI Android C# UI Windows C# UI Lógica do App Compartilhada Xamarin Approach
  • 6. C# on 2.6 billion devices
  • 8. Xamarin • Qualquer coisa que você pode fazer em Objective- C ou Java pode ser feito em C# com Xamarin usando o Visual Studio (ou não) • Designer de Storyboard do iOS integrado no VS • Designer dos XMLs do Android integrado no VS
  • 9.
  • 10. Nativo! Aplicativos Xamarin parecem nativos porque SÃO nativos User Interfaces Nativas Acesso a APIs Nativas Performance Nativa
  • 11.
  • 12.
  • 13. MVVMCross • Android • iOS • Windows Phone • Windows Store App (Windows 8) • WPF • MacOS
  • 14. MVVMCross • OpenSource (GitHub) • Arquitetura • Model • ViewModel • Commands • Properties • View • UI • Binding • Plugins! • Testável
  • 15. Commands • É a forma da View notificar a ViewModel que alguma coisa aconteceu na UI (botão pressionado, por exemplo). • Pode ter parâmetros
  • 16. Properties • É a forma da ViewModel informar dados (texto, inteiro, listas, etc) à ViewModel.
  • 17. Binding • Especifica o mapeamento entre os controles da View(UI) com as propriedades/commands da ViewModel. • OneWay, TwoWay • Fallback • Converter (bool na VM pode ser Visibility específico da plataforma na View)
  • 18. Navigation (animal!) • Entre telas • Leia-se ViewModel • ShowViewModel<ViewModelType>() • Close()
  • 19. Plugins • Forma mais formal(?) de permitir código específico de plataformas de ser injetado • Muuuuuuuuuitos já prontos • Vou para o próximo slide para maximixar o uso do espaço • Uma DLL por plataforma e uma DLL common (normalmente só com lógica e uma Interface)
  • 20. Plugins oficiais • Accelerometer(*) • Bookmarks • Color(*) • DownloadCache(*) • Email • FieldBinding • File(***) • Json • JsonLocalisation • Location(*) • Messenger(**) • MethodBinding • Network • PhoneCall • PictureChooser(*) • ReflectionEx • ResourceLoader • Share • SoundEffects • Sqlite • ThreadUtils • Visibility(**) • WebBrowser
  • 21. Plugins não oficiais (busca rápida NuGet) • AppId • BarCode (Zxing, MUITO BOM!) • SecureStorage • Analytics (Google) • GeoCoder • Connectivity • Notifications • SMS