Upload
william-s-rodriguez
View
225
Download
2
Embed Size (px)
“antes da 1º linha de código”;
Aplicativos Corporativos
Cross Plataforma com
Xamarin e Azure Mobile
Apps
>
“no menor tempo ($) possível”;
Construir um módulo
mobile de um sistema
em produção
desafio
>
“Mais de 140 ferramentas & frameworks no mercado”;
O que não queremos?
escolha
>
O mesmo aplicativo várias vezes
Java
Eclipse
Android App
C#
Visual Studio
Windows App
Objective-C
XCoce
iOS App
“Abordagem de Silos”;>
Três vezes mais problemas
Maior tempo para
lançamento de novas
funcionalidades e
dificuldades para
execução de teste
Sobrecarga na gestão Investimento em
hardware diferentes
Perfis diferentes de
profissionais e
linguagens
incompatíveis entre si
(JAVA, Objective C, C#)
“Comece pelo Android é mais fácil!”
Evitar armadilhas ou
pegadinhas
escolha
>
Dispositivos Android
API’s mais complexas
(difíceis de utilizar)
Aplicativos Android
custam de 2 a 3 vezes
mais para desenvolver
do que Aplicativos iOS
Fragmentação de
ambiente (8 versões do
OS e mais de 7mil
dispositivos diferentes)
Baixa produtividade
Mais fácil... Mesmo?
1 Mês iOS + 2 Meses para Android = 1 projeto de 3 meses;
Fugir de utopias,
unicórnios e arco-íris
escolha
>
“Mesmo se você tiver o mesmo esforço de desenvolvimento para todas as trêsplataformas ainda terá três meses de projeto”
+ =
Aprender com os erros
dos outros
escolha
Mark Zuckerberg
"The biggest mistake we made
as a company was betting too
much on HTML5 rather than
native"
>
Mas HTML5 é o futuro!?
HTML5 APP NATIVA
Abordagens mágicas!?
escolha
“Escreva uma vez e rode em qualquer lugar”>
Abordagem da “caixa mágica preta”
Black Box
Altas taxas de abandono e desperdício de investimento
Apresenta problemas de
compatibilidade e
performance (não
nativa)
Experiência do usuário
pobre e Interfaces fora
do padrão;
Difícil manutenção e
debug
Não utiliza toda a
capacidade de recursos
das plataformas de
forma homogenia e tem
acesso limitados a API’s
O que queremos?
escolha
Isolamos os “problemas” e agora já podemos decidir.>
A melhor experiência possível para os usuários, com as premissas;
Experiências nativas
acesso a GPU, Stylus,
GPS, Acelerômetro e
ficar aberto a
tendências e novas
tecnologias.
Produtividade e
reaproveitar o código
Suporte ALM e TFS,
evolução continua e
interação com
componentes e
bibliotecas de terceiros
Aproveitar intelecto
(programadores C#)
Escolhemos Xamarindecisão
Por que?>
Xamarin utiliza uma Abordagem Única
C#
Mobile Enterprise ApplicationPlatform
Construir App's Nativas Testar Monitorar
Enterprise Customers
decisão
“Quem já usa?”>
“With Xamarin, developers
combine all of the productivity
benefits of C#, Visual Studio
2013 and Windows Azure with
the flexibility to quickly build for
multiple device targets.”
S.Somasegar
Corporate Vice President, Microsoft
asyncPCL &Shared Projects
Tecnologias Microsoft
Como funciona
decisão
Aplicações Nativas
Interface de Usuário Nativa
High-fidelity API Access
Native Performance
App’s são construídas utilizando interface e ,
controles padrão permitindo interações fáceis e
familiares
App’s têm acesso a toda a gama de funcionalidade
exposta pela plataforma independente de
dispositivo
App’s tiram vantagem de aceleração de hardware
e recursos específicos da plataforma, e são
compilados como binários nativos, não
interpretadas em tempo de execução.
Código C#
Compartilhado no Backend
Interfaces
nativas C#
Por que Xamarin?
Compartilhe o código que faz sentido, tire
vantagem da UX nativa de cada plataforma.
Xamarin é 100% Código Nativo
Debug de objetos Java
e Objective C
Interoperabilidade com
qualquer linguagem
Utilizar bibliotecas
Android e iOS de forma
nativa
Empacotar e
disponibilizar uma
aplicação nativa única
Não só para Smartphones e Tablets
Nearables
Xamarin.Robotics
Wearables
http://bit.ly/xamarin-nearables
http://bit.ly/xamarin-robotics
http://bit.ly/xamarin-wearables
Performance NativaApp’s construídas com Xamarin são nativas pois utilizam código
nativo.
Xamarin.iOS executa compilação Ahead Of
Time (AOT) produzindo o binário (.app) ARM
para Apple App Store.
Xamarin.Android tira vantage da compilação
Just In Time (JIT) nos dispositivos Android.
Qualquer coisa que você conseguir fazer utilizando
Objective-C, Swift, ou Java! Pode ser feita com
C# e Xamarin no Visual Studio
Visual Studio como IDE
Desenho de telas
integrado (iOS, Android
e Windows Phone)
Suporte a PCL
DLL portáveis
Uso de uma única
linguagem de
desenvolvimento
Team Foundation Server
(TFS), NuGet e
ReSharper
Compartilhamento de
Código
decisão
Compartilhamento de Código
C# App Logic
C# User Interface 30%
70%
Media de Compartilhamento>
Desenvolvimento Acelerado com Compartilhamento de Código
Estatísticas de construção utilizando código compartilhado com Xamarin, para um aplicativo
simulador de circuitos em tempo real utilizado para desenha circuitos analógicos e digitais.
User Interface Code
App Logic
70%
30%
86%
14%
85%
15%
88%
12%
{ iOS } { Android } { Windows RT } { OS X }
http://icircuitapp.com/>
Escrever uma vez só a interface que é reutilizada
nas 3 plataformas?
Construa interfaces Nativas para iOS, Android e
Windows Phone a partir de uma única base de código
C# compartilhada.
Código C#
Compartilhado no Backend
Xamarin.Forms = Interface do usuário compartilhada C#
Xamarin.Forms
Pages
Layouts
Xamarin.FormsControles
Mesmo código, três plataformas
Compatibilidade e
Atualizações?
preocupações
Compatibilidade e Atualizações
Única solução Cross-
plataforma a suportar
Amazon Fire
Única solução Cross-
plataforma a suportar
Wearables e Nearables
100% de suporte
Android L
100% de suporte ao iOS
8 (no mesmo dia)
Suportar o nosso
processo de ALM e
DevOps?
preocupações
Team Foundation Server
Agilidade para o time
de desenvolvimento
Build, deploy e
Integração Continua
(DevOps)
Debug para iOS,
Android e Windows
Controle e visibilidade
para gestores
(TFS portal)
Como garantir
Qualidade?
preocupações
Qualidade em mobile é vital>
Xamarin Test Cloud
https://testcloud.xamarin.com/devices>
Xamarin Profiler (beta)
Como monitorar a
aplicação no dispositivo?
preocupações
“Se algo der errado? Envie o seu smartphone para a gente!”>
Como conectar os dados
corporativos?
preocupações
Azure Mobile Apps
Antes, Azure Mobile Services>
Sincronização de dados
offline para criar
aplicativos dinâmicos
Conexões Híbridas e
VPN para conectar
aplicativos aos dados
locais
Notificações
personalizadas por push
Dimensionamento
automático interno de
acordo com as
necessidades dos
aplicativos
Backend para aplicações móveis
“.NET ou Node.js”;>
Conectar-se a recursos
locais como SAP, Oracle
e SQL Server e
SharePoint
Autenticação e
Autorização com
integrado ao Active
Directory
SSO utilizando conta
Microsoft ou de redes
sociais(Twitter, Facebook, Google)
Conectar-se a
aplicações SaaS
(Sales Force, Office 365)
Data & Synchronizing Data
Sincronização baseada
em nuvem para criar
aplicativos que
funcionam off-line
Sincronização entre
múltiplos dispositivos
Armazenamento de
dados em SQL,
Armazenamento de
Tabela e MongoDB
Capacidade Cross
platforma
A melhor experiência para usuários aliada a qualidade e produtividade para nossos time
de desenvolvimento
qualquer plataforma e qualquer tipo de aplicativo.
Dúvidas?