Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services

67
Trilha .NET

Transcript of Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services

Trilha .NET

Monkey Nights Devs

Co founder

fb.com/MonkeyNightsDevs

@MonkeyNightsDevs

William S. Rodriguez

Arquiteto de Soluções Moveis

[email protected]

williamsrz.com.br

@WilliamSRodz

No Code

2012

2014

dos brasileiros possuem dois

ou mais Smartphones.

Fontes: Insights Globais Sobre Smartphones da Nielsen, primeiro semestre de 2012; Insights Sobre Telefonia Móvel da Nielsen, 2012

48% dos colaboradores de uma

organização dependem de

tecnologia e dispositivos

móveis para realizar o seu

trabalho.

25%

DesafiosConstruir um módulo mobile de um sistema em produção.

Novas IdeiasVamos construir um aplicativo que ...

Java

Eclipse

Android App

C#

Visual Studio

Windows App

Objective-C

XCoce

iOS App

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#)

“Mesmo se você tiver o mesmo esforço de desenvolvimento para todas as trêsplataformas ainda terá três meses de projeto”

+ =

“Comece pelo Android é mais fácil”

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

(emulador e ambientes)

Mais fácil... Mesmo?

Aprender com os erros dos outros

"The biggest mistake we

made as a company was

betting too much on

HTML5 rather than native"

Image source huffingtonpost.in

Mas HTML5 é o futuro!?

APP NATIVAHTML5

Image Source huffingtonpost.in

Abordagens

mágicas!?“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

Aplicações

Nativas

“People expect great experiences from their mobile devices…”- Miguel de Icaza

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.

Por que?

Slides para

os “chefes”

Construa App's Nativas Teste Monitore

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#)

Developers,Developers,Developers,Developers!

Como funciona?

Xamarin utiliza uma Abordagem Única

C#

Xamarin Abordagem Tradicional

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

iOS C# UI Windows C# UIAndroid C# UI

Shared C# Mobile C# Server

Linux/Mono

CoreCLRAzure

Shared C# Client/Server

Xamarin.Forms

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

Shared C# Mobile

Shared C# Client/Server

C# Server

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

C#

MapKit UIKit iBeacon CoreGraphics CoreMotion

System.Data System.Windows System.Numerics System.Core System.ServiceModel

System.Net System System.IO System.Linq System.Xml

C#

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

C#

Por que Xamarin?

Compartilhe o código que faz sentido, tire

vantagem da UX nativa de cada plataforma.

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

Nearables

Xamarin.Robotics

Wearables

http://bit.ly/xamarin-nearables

http://bit.ly/xamarin-robotics

http://bit.ly/xamarin-wearables

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.

Por que?

C#

var doc = Xdocument.Load(utl);

foreach(var item in doc.Root.Elements()) {var text = item.value;

}

from p in Table<Pessoa>()where p.ID == idselect p;

button.TouchUpInside += (s,o) => {message.Text = “Olá!”;

}

from item in itens.AsParallel()let result = VaiDemorarUmPouco(item)select result;

var client = new HttpClient();

Task<string> getStringTask = client.GetStringAsync(“http://williamsrz.com.br”);

E por ai vai...

Menos código mais resultado

C#

Objective-C C# com Xamarin

Java C# com Xamarin

Visual Studio

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

Portable Class Libray

› Código reutilizável;

› 1 Assembly = Multiplas Plataformas;

› Core, LINQ, HTTPClient

› NuGet

› Refactoring

File > New > Portable Class Library

Portable Class Libray

want most of our code here

Portable Class Libray

PCL é “amarrado” a um profile específico que define APIs específicas que podem ser

usadas em cada plataforma.

* Media de Compartilhamento

http://icircuitapp.com/

“Rdio’s mobile app is also the best looking and best

implemented of the three [music streaming apps reviewed]”

– Wired

Ú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)

Como conectar os dados e dispositivos?

Azure

Azure Mobile Apps

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

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 desenvolvedores

Qualquer plataforma e qualquer tipo de aplicativo.

Monkey Nights Devs

Co founder

fb.com/MonkeyNightsDevs

@MonkeyNightsDevs

William S. Rodriguez

Arquiteto de Soluções Moveis

[email protected]

williamsrz.com.br

@WilliamSRodz

ExtrasCamiseta Xamarin (de graça) https://xamarin.com/c-sharp-shirt

Azure Free Trial http://azure.microsoft.com/pt-br/pricing/free-trial/

Visual Studio Communityhttps://www.visualstudio.com/en-us/products/visual-studio-

community-vs.aspx

HBO Silicon Valley http://imdb.com/title/tt2575988/

The Sopranoshttp://imdb.com/title/tt0141842/

Cartons by fb.com/cartoonistforhire