SlideShare uma empresa Scribd logo
1 de 23
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
Desenvolvimento Mobile
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 Java
pode ser feito em C# e Visual Studio com Xamarin
C# Backend
Compartilhado
Platform
Specific Code
UI+APIs UI + APIsUI + APIs
Battery
GPS
Lights
Notifications
Settings
Text To Speech
Battery
GPS
Lights
Notifications
Settings
Text To
Speech
Battery
GPS
Lights
Notifications
Settings
Text To
Speech
Plugins para Xamarin
API comum
TextToSpeech
Speak(“Hello World”);
AVSpeechSynthesizer SpeechSynthesizer
Demo
Aplicativo 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
• iWatch
E 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
Demo
MvvmCross
Menos código repetido
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
• https://github.com/akamud/MvvmCrossPassaRegua
w w w . l a m b d a 3 . c o m . b r
Dúvidas?
@akamud
mahmoud.ali@lambda3.com.br

Mais conteúdo relacionado

Mais procurados

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
Xpand IT
 

Mais procurados (20)

Introdução ao Xamarin Forms
Introdução ao Xamarin FormsIntrodução ao Xamarin Forms
Introdução ao Xamarin Forms
 
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
 
Blazor, web assembly e o futuro do browser
Blazor, web assembly e o futuro do browserBlazor, web assembly e o futuro do browser
Blazor, web assembly e o futuro do browser
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutos
 
Desenvolvimento Cross-Mobile com Xamarin
Desenvolvimento Cross-Mobile com Xamarin Desenvolvimento Cross-Mobile com Xamarin
Desenvolvimento Cross-Mobile com Xamarin
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016
 
Xamarin plataform
Xamarin plataformXamarin plataform
Xamarin plataform
 
ASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJS
 
Xamarin + Prism: implementando boas práticas
Xamarin + Prism: implementando boas práticasXamarin + Prism: implementando boas práticas
Xamarin + Prism: implementando boas práticas
 
.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?
 
Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...
Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...
Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...
 
Middlewares ASP.NET
Middlewares ASP.NETMiddlewares ASP.NET
Middlewares ASP.NET
 
Novidades do ASP.NET MVC 4
Novidades do ASP.NET MVC 4Novidades do ASP.NET MVC 4
Novidades do ASP.NET MVC 4
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NET
 
Meteor - TechParty 2015
Meteor - TechParty 2015Meteor - TechParty 2015
Meteor - TechParty 2015
 
Desenvolvimento para web com Meteor
Desenvolvimento para web com MeteorDesenvolvimento para web com Meteor
Desenvolvimento para web com Meteor
 
MAUI + .NET 6: principais novidades
MAUI + .NET 6: principais novidadesMAUI + .NET 6: principais novidades
MAUI + .NET 6: principais novidades
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
Asp.Net Core - Meetup BH
Asp.Net Core - Meetup BHAsp.Net Core - Meetup BH
Asp.Net Core - Meetup BH
 
Desenvolvendo aplicações RIA - Marcel Araujo
Desenvolvendo aplicações RIA - Marcel AraujoDesenvolvendo aplicações RIA - Marcel Araujo
Desenvolvendo aplicações RIA - Marcel Araujo
 

Destaque

Iut agile lyon 20 nov. 2013 - bdd
Iut agile lyon   20 nov. 2013 - bddIut agile lyon   20 nov. 2013 - bdd
Iut agile lyon 20 nov. 2013 - bdd
agnes_crepet
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
French Scrum User Group
 

Destaque (20)

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
 
Instrumentação completa para sua aplicação Mobile com Visual Studio Mobile Ce...
Instrumentação completa para sua aplicação Mobile com Visual Studio Mobile Ce...Instrumentação completa para sua aplicação Mobile com Visual Studio Mobile Ce...
Instrumentação completa para sua aplicação Mobile com Visual Studio Mobile Ce...
 
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
 
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
 
Apresentação microsoft hololens interop mix 2016
Apresentação microsoft hololens   interop mix 2016Apresentação microsoft hololens   interop mix 2016
Apresentação microsoft hololens interop mix 2016
 
Application Insights + Xamarin
Application Insights + XamarinApplication Insights + Xamarin
Application Insights + 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
 
Programando interfaces reativas com ReacitveUI na plataforma Xamarin
Programando interfaces reativas com ReacitveUI na plataforma XamarinProgramando interfaces reativas com ReacitveUI na plataforma Xamarin
Programando interfaces reativas com ReacitveUI na plataforma Xamarin
 
Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...
Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...
Desenvolvimento multiplataforma com Xamarin e MVVM: da arquitetura a UIs espe...
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
Iut agile lyon 20 nov. 2013 - bdd
Iut agile lyon   20 nov. 2013 - bddIut agile lyon   20 nov. 2013 - bdd
Iut agile lyon 20 nov. 2013 - bdd
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
Pizza party 30-09-2011 bdd-cucumber
Pizza party 30-09-2011 bdd-cucumberPizza party 30-09-2011 bdd-cucumber
Pizza party 30-09-2011 bdd-cucumber
 
Decouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratiqueDecouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratique
 
Introduction to c#
Introduction to c#Introduction to c#
Introduction to c#
 
"Spécification par l'exemple" par l'exemple : le BDD démystifié
"Spécification par l'exemple" par l'exemple : le BDD démystifié"Spécification par l'exemple" par l'exemple : le BDD démystifié
"Spécification par l'exemple" par l'exemple : le BDD démystifié
 
ASP.NET Core 1.0 Overview
ASP.NET Core 1.0 OverviewASP.NET Core 1.0 Overview
ASP.NET Core 1.0 Overview
 
Visual studio 2015 and .net core 5 – get ready to rumble
Visual studio 2015 and .net core 5  – get ready to rumbleVisual studio 2015 and .net core 5  – get ready to rumble
Visual studio 2015 and .net core 5 – get ready to rumble
 
Keynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreKeynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle ère
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
 

Semelhante a Aumentando reaproveitamento de código com MvvmCross

Semelhante a Aumentando reaproveitamento de código com MvvmCross (20)

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
 
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?
 
Conheça a Plataforma Xamarin
Conheça a Plataforma XamarinConheça a Plataforma Xamarin
Conheça a Plataforma Xamarin
 
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
 
Aplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile Apps
Aplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile AppsAplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile Apps
Aplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile Apps
 
Construindo Aplicativos Android Nativos com C#
Construindo Aplicativos Android Nativos com C#Construindo Aplicativos Android Nativos com C#
Construindo Aplicativos Android Nativos com C#
 
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
 
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
 
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediLatinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
 
Introdução ao Xamarin iOS
Introdução ao Xamarin iOSIntrodução ao Xamarin iOS
Introdução ao Xamarin iOS
 
Microsoft Xamarin
Microsoft XamarinMicrosoft Xamarin
Microsoft Xamarin
 
Watch & Wear com Xamarin e C#
Watch & Wear com Xamarin e C#Watch & Wear com Xamarin e C#
Watch & Wear com Xamarin e C#
 
iBeer #2 - Xamarin
iBeer #2 - XamariniBeer #2 - Xamarin
iBeer #2 - Xamarin
 
Xamarin - Dev Day 2015
Xamarin - Dev Day 2015Xamarin - Dev Day 2015
Xamarin - Dev Day 2015
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-Platform
 
Universal Windows Platform Bridges
Universal Windows Platform BridgesUniversal Windows Platform Bridges
Universal Windows Platform Bridges
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
 
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?
 
Ms techday - Windows Universal Apps
Ms techday  - Windows Universal AppsMs techday  - Windows Universal Apps
Ms techday - Windows Universal Apps
 

Mais de akamud

Mais de akamud (17)

.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Hacktoberfest - Contribuindo com Open Source
Hacktoberfest  - Contribuindo com Open SourceHacktoberfest  - Contribuindo com Open Source
Hacktoberfest - Contribuindo com Open Source
 
Automatizando os testes da sua aplicação hoje
Automatizando os testes da sua aplicação hojeAutomatizando os testes da sua aplicação hoje
Automatizando os testes da sua aplicação hoje
 
Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...
Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...
Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...
 
.NET MAUI - O futuro do desenvolvimento de apps no .NET
.NET MAUI - O futuro do desenvolvimento de apps no .NET.NET MAUI - O futuro do desenvolvimento de apps no .NET
.NET MAUI - O futuro do desenvolvimento de apps no .NET
 
Azure DevOps + App Center: DevOps multi-staging para seu app
Azure DevOps + App Center: DevOps multi-staging para seu appAzure DevOps + App Center: DevOps multi-staging para seu app
Azure DevOps + App Center: DevOps multi-staging para seu app
 
O Futuro do .NET
O Futuro do .NETO Futuro do .NET
O Futuro do .NET
 
Interfaces reativas com ReactiveUI no Xamarin.Forms
Interfaces reativas com ReactiveUI no Xamarin.FormsInterfaces reativas com ReactiveUI no Xamarin.Forms
Interfaces reativas com ReactiveUI no Xamarin.Forms
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile - Capi Conf 2019
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile - Capi Conf 2019Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile - Capi Conf 2019
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile - Capi Conf 2019
 
Mobile Development Simplified with Xamarin
Mobile Development Simplified with XamarinMobile Development Simplified with Xamarin
Mobile Development Simplified with Xamarin
 
O que há de novo no Xamarin.Forms
O que há de novo no Xamarin.FormsO que há de novo no Xamarin.Forms
O que há de novo no Xamarin.Forms
 
Automatizando tudo no mundo mobile com fastlane
Automatizando tudo no mundo mobile com fastlaneAutomatizando tudo no mundo mobile com fastlane
Automatizando tudo no mundo mobile com fastlane
 
Tornando o Xamarin.Forms ainda melhor com Prism
Tornando o Xamarin.Forms ainda melhor com PrismTornando o Xamarin.Forms ainda melhor com Prism
Tornando o Xamarin.Forms ainda melhor com Prism
 
Animações com Xamarin.Forms
Animações com Xamarin.FormsAnimações com Xamarin.Forms
Animações com Xamarin.Forms
 
Instrumentação completa com Visual Studio Mobile Center
Instrumentação completa com Visual Studio Mobile CenterInstrumentação completa com Visual Studio Mobile Center
Instrumentação completa com Visual Studio Mobile Center
 
Xamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveis
Xamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveisXamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveis
Xamarin Forms: O caminho para 100% de código compartilhado em aplicativos móveis
 
Xamarin Introdução
Xamarin IntroduçãoXamarin Introdução
Xamarin Introdução
 

Último

Último (8)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Aumentando reaproveitamento de código com MvvmCross

Notas do Editor

  1. Coming up next is bubbles