aplicativos corporativos cross plataform com xamarin & azure mobile apps

63
“antes da 1º linha de código”; Aplicativos Corporativos Cross Plataforma com Xamarin e Azure Mobile Apps >

Upload: william-s-rodriguez

Post on 18-Jul-2015

226 views

Category:

Mobile


2 download

TRANSCRIPT

“antes da 1º linha de código”;

Aplicativos Corporativos

Cross Plataforma com

Xamarin e Azure Mobile

Apps

>

[email protected]

William S. Rodriguez

arquiteto de soluções

móveis

>

“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?

[email protected]

Muito Obrigado!

>