82
PLATAFORMA XAMARIN William S. Rodriguez Arquiteto de Soluções no Grupo Viceri [email protected]

Conheça a Plataforma Xamarin

Embed Size (px)

Citation preview

Page 1: Conheça a Plataforma Xamarin

PLATAFORMA XAMARINWilliam S. Rodriguez

Arquiteto de Soluções no Grupo Viceri

[email protected]

Page 2: Conheça a Plataforma Xamarin

Agenda

Desenvolvimento mobile;

Por que criar aplicações nativas;

A Plataforma Xamarin e código compartilhado;

Clico de vida de aplicativos e DevOps;

Xamarin e Microsoft;

Xamarin no Grupo Viceri

Page 3: Conheça a Plataforma Xamarin

DESENVOLVIMENTO MOBILEArquiteturas e modelos de desenvolvimento

Page 4: Conheça a Plataforma Xamarin

2012

Page 5: Conheça a Plataforma Xamarin

2014

Page 6: Conheça a Plataforma Xamarin

http://bit.ly/mobile-social-data

Page 7: Conheça a Plataforma Xamarin

O mesmo aplicativo várias vezes

Abordagem de Silos

Java

Eclipse

Android App

C#

Visual Studio

Windows App

Objective-C

XCoce

iOS App

Page 8: Conheça a Plataforma Xamarin

Três vezes mais problemas

• Perfis diferentes de profissionais;

• Investimento em hardware diferentes;

• Linguagens incompatíveis entre si (JAVA, Objective C, C#);

• Sobrecarga na Gestão;

• Dificuldades para execução de Teste;

• Maior tempo para lançamento de novas funcionalidades.

Page 9: Conheça a Plataforma Xamarin

Então vamos começar pelo mais fácil

• 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);

• Produtividade;

• API’s mais complexas (difíceis de utilizar);

Page 10: Conheça a Plataforma Xamarin

Dispositivos Android

Page 11: Conheça a Plataforma Xamarin

* Mesmo se você tiver o mesmo esforço

de desenvolvimento para todas as trêsplataformas ainda terá três meses de projeto

* Utopia

1 Mês iOS + 2 Meses para Android = 1 projeto de 3 meses;

Page 12: Conheça a Plataforma Xamarin

Abordagem da “caixa mágica preta”

• Experiência do usuário pobre

• Não utiliza toda a capacidade de recursos das plataformas de forma homogenia;

• Apresenta problemas de compatibilidade e performance;

• Difícil manutenção e debug;

• Alta taxa de abandono e desperdício de investimento

Black Box

Page 13: Conheça a Plataforma Xamarin

Escreva uma vez e execute em qualquer dispositivo

Interfaces fora

do padrão

Performance

não nativa

Acesso a API’s

limitados

Page 14: Conheça a Plataforma Xamarin

Mas o HTML5 vai nos salvar!?

"The biggest mistake we made as a company was betting too much on HTML5 rather than native"

- Mark Zuckerberg

Page 15: Conheça a Plataforma Xamarin

Mas o HTML5 vai nos salvar!?

HTML5 APP NATIVA

Page 16: Conheça a Plataforma Xamarin

Por que criar App’s Nativas?

Page 17: Conheça a Plataforma Xamarin

“As pessoas esperam uma grande experiência em dispositivos Mobile”- Miguel de Icaza

Page 18: Conheça a Plataforma Xamarin

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.

Page 19: Conheça a Plataforma Xamarin

A PLATAFORMA XAMARINCódigo NATIVO compartilhado

Page 20: Conheça a Plataforma Xamarin

Xamarin Utiliza uma Abordagem Única

Criar aplicações nativas iOS, Android, Mac e Windows utilizando C#.

Page 21: Conheça a Plataforma Xamarin

Por que Xamarin?

Mobile Enterprise Application Platform

Construa App's Nativas Teste Monitore

Page 22: Conheça a Plataforma Xamarin

Código C#

Compartilhado no Backend

Xamarin

Android C# UI Windows C# UIiOS C# UI

Page 23: Conheça a Plataforma Xamarin

API's Windows

Page 24: Conheça a Plataforma Xamarin

iOS API's 100% de Cobertura

Page 25: Conheça a Plataforma Xamarin

Android API's 100% de Cobertura

Page 26: Conheça a Plataforma Xamarin

Não só Smartphones e Tablets

Nearables

Xamarin.Robotics

Wearables

http://bit.ly/xamarin-nearables

http://bit.ly/xamarin-robotics

http://bit.ly/xamarin-wearables

Page 27: Conheça a Plataforma Xamarin

Por que Xamarin?

Compartilhe o código que faz sentido, tire vantagem da UX nativa de cada plataforma.

Page 28: Conheça a Plataforma Xamarin

Compartilhamento de Código

• Compartilhar apenas o core da aplicação;

• Interface Nativa;• Cria a interface de acordo com as

características de cada plataforma.

• Abuso das características do dispositivo;

• 100% de compatibilidade;C#

Backend70%

C# UI30%

Media de Compartilhamento

Page 29: Conheça a Plataforma Xamarin

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/

Page 30: Conheça a Plataforma Xamarin

50 milhões de linhas de código compartilhado

• Precisavam de uma solução escalável para aplicativos nativos em múltiplas plataformas.

• Aplicativos originais construídos utilizando abordagem de silos. Equipe era incapaz de entregar novos recursos em todas as plataformas simultaneamente.

• Custos elevados para desenvolvimento e manutenção de aplicativos.

Page 31: Conheça a Plataforma Xamarin

50 milhões de linhas de código compartilhado

Utilizando Xamarin

Rdio agora compartilha mais de 50 milhões linhas código de C # através iOS, Android e Windows, permitindo que eles se concentrem em recurso de paridade e experiência do usuário.

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

implemented of the three [music streaming apps reviewed]”

– Wired

Page 32: Conheça a Plataforma Xamarin

Xamarin é Código Nativo

• Interoperabilidade com qualquer linguagem;

• Utilizar bibliotecas Android e iOS de forma nativa;

• Debug de objetos Java e Objective C.

• Executa código Java e Objective C

• Empacota e disponibiliza uma aplicação nativa única;

• Posso utilizar Binding para bibliotecas e objetos Java (JAR);• Não é possível fazer fora de framework nativo.

Page 33: Conheça a Plataforma Xamarin

Performance Nativa

App’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.

Page 34: Conheça a Plataforma Xamarin

Qualquer coisa que você conseguir fazer utilizando Objective-C, Swift, ou Java! Pode ser

feita com C# e Xamarin no Visual Studio

Page 35: Conheça a Plataforma Xamarin

Visual Studio como IDE

• Todas as funcionalidades do Visual Studio disponíveis

• Help, debug, intelisense, refactor, watch, etc...

• Debugar código nativo;

• Integração com TFS.

Page 36: Conheça a Plataforma Xamarin

Visual Studio como IDE

• Desenho de telas integrado (iOS, Android e Windows Phone)

• Gerenciar dependências via NuGet ou NuGet privado;

• Uso de uma única linguagem de desenvolvimento C#;

• Suporte a PCL;• DLL portáveis.

Page 37: Conheça a Plataforma Xamarin

Integração com Mac (build host)

• Licenciamento da Apple requer um Mac para Build e teste de aplicativos iOS.

Page 38: Conheça a Plataforma Xamarin

Xamarin Android Designer

• Integração completa com Visual Studio;

• Drag and drop de componentes;

• Muilti edit.

Page 39: Conheça a Plataforma Xamarin

Xamarin iOS Designer

• Integração completa com Visual Studio;

• Suporte a StoryBoard;

• Suporte a auto-layout;

• Live preview para controles customizados.

Page 40: Conheça a Plataforma Xamarin

Por que C#?C Hash Tag ou dó sustenido?

Page 41: Conheça a Plataforma Xamarin

C# roda em 2.5 Bilhões de dispositivos

De computadores, smarthphones, tablets até consoles de jogos como PS4

Page 42: Conheça a Plataforma Xamarin

C#

• Suporte a Linq e Lambdas;

• Eventos e delegates;

• Paralelismo;

• Programação Assíncrona;

• Generics;

• Métodos anônimos;

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://viceri.com.br”);

E por ai vai...

Page 43: Conheça a Plataforma Xamarin

C# é mais produtivoMenos código mais resultado

Page 44: Conheça a Plataforma Xamarin

Objective-C C# com Xamarin

Page 45: Conheça a Plataforma Xamarin

Java C# com Xamarin

Page 46: Conheça a Plataforma Xamarin

C# Linguagem Conhecida

Uso de mão de obra já qualificada;

Sem necessidade de treinamento para utilizar o framework;

Utilizar componentes de mercado ou comunidade;

Reaproveitamento de legado.

Page 47: Conheça a Plataforma Xamarin

Xamarin Scanner (C#)

Verificar compatibilidade do seu .exe ou .dll;

Identifica as dependências;

Verificar o quão o código é compatível para as plataformas iOS, Android e Windows;

Fornece um relatório de compatibilidade. http://scan.xamarin.com

Page 48: Conheça a Plataforma Xamarin

Xamarin Mobile API

API’s comuns a todos os dispositivos, expostas em um namespace único;

Xamarin.Mobile, é a mesma API para as 3 plataformas;

Contatos, camera e geolocalização.

* Roadmap inclui notificações e acelerômetro

Page 49: Conheça a Plataforma Xamarin

70% de compartilhamento de código não é suficiente!?

Page 50: Conheça a Plataforma Xamarin

XAMARINFORMS

Até 99% de compartilhamento de código

Page 51: Conheça a Plataforma Xamarin

Construa interfaces Nativas para iOS, Android e

Windows Phone a partir de uma única base de

código C# compartilhada.

Page 52: Conheça a Plataforma Xamarin

Xamarin + Xamarin Forms

Xamarin.Forms - Interface do usuário compartilhada C#

Código C#

Compartilhado no Backend

Page 53: Conheça a Plataforma Xamarin

Escrever uma vez só a interface que é reutilizada nas 3 plataformas.

Page 54: Conheça a Plataforma Xamarin

Xamarin Forms

• Maximiza o compartilhamento de código entre plataformas;

• Mais de 40 controles, páginas e layouts;

• Construa interfaces usando C# ou XAML;

• Two-way Data Binding;

• Navegação, animação, mensageria.

Page 55: Conheça a Plataforma Xamarin

Xamarin Forms Xaml

• Uso de XAML para especificar as telas;

• Binds automatizados;

• Sem código C# para update de interface;

• DataBind com MVVM;

• Customização por Extensões.

* Breve um Design de telas

Page 56: Conheça a Plataforma Xamarin

Xamarin Forms

Pages

Layouts

Page 57: Conheça a Plataforma Xamarin

Xamarin Forms

Controles

Page 58: Conheça a Plataforma Xamarin

C# XAML

Button btn = new Button {

Text = "Clique aqui!",

Rotation = 180,

IsVisible = true,

HorizontalOptions = LayoutOptions.Center,

VerticalOptions = LayoutOptions.Center,

TextColor = Color.Gray,

BorderColor = Color.FromHex("#000000"),

Font = Font.SystemFontOfSize(NamedSize.Medium,

FontAttributes.Italic)

};

<Button Text="Clique aqui!"

Rotation=“180"

IsVisible=“true"

HorizontalOptions=“Center"

VerticalOptions=“Center"

TextColor=“Gray"

BorderColor=“#000000"

Font=“Italic,Medium" />

Page 59: Conheça a Plataforma Xamarin

Mesmo código, três plataformas

Page 60: Conheça a Plataforma Xamarin

Compatibilidade e Atualizações?

Page 61: Conheça a Plataforma Xamarin

Compatibilidade e Atualizações

• Tudo que está no iOS 8 (no mesmo dia)• 100% suportado pelo Xamarin Designer

• Android L• 100% de suporte

• Única solução Cross-plataforma a suportar Wearables• 100% de suporte ao GoogleGlass e Android Wear

• Única solução Cross-plataforma a suportar Amazon FireTV

Page 62: Conheça a Plataforma Xamarin

Xamarin PlayerEmuladores nativos não são performáticos

Page 63: Conheça a Plataforma Xamarin

Xamarin Player

• Boot mais rápido;

• Windows e iOS;

• Drag and drop para instalar Apps;

• Aceleração gráfica;

• ADB Sync

• Muilt Touch;

Page 64: Conheça a Plataforma Xamarin

O Mais rápido do mercado

1565

1853

65

GOOLE NEXUS 4 XAMARIN ANDROID PLAYER

GOOGLE EMULATOR

GeekBench 3 Mult-core

Page 65: Conheça a Plataforma Xamarin

Xamarin Component Store

• Diretório de componentes pagos e gratuitos.

Page 66: Conheça a Plataforma Xamarin

DevOps e ALMPlataforma corporativa suportando o clico de vida de aplicações mobile

Page 67: Conheça a Plataforma Xamarin

Todo o clico de vida de um Aplicativo

• Reaproveitamento de Código;

• Especificação;

• Gestão;

• Construção da Interface;

• Compilação;

• Automação de testes;

• Teste na Nuvem;

• Deploy Automatizado;

• Rastreamento e Monitoramento de aplicações;

Page 68: Conheça a Plataforma Xamarin

Automação de Testes

• Todo o Ciclo de Automação de testes suportado;• Testes unitários;

• Teste de Integração;

• Teste de Interface.

• Praticas com TDD, Integração Contínua, Refatoração, etc;

• Casos de Testes rodam no emulador ou no próprio dispositivo.

Page 69: Conheça a Plataforma Xamarin

Xamarin Test Cloud

• Testar aplicações de Local (nuvem privada);

• Testar aplicações na nuvem de dispositivos da Xamarin

• Parallel Test.

https://testcloud.xamarin.com/devices

Page 70: Conheça a Plataforma Xamarin

DevOps

• De acordo com o processo definido pela equipe;

• CI, gated, etc..

Page 71: Conheça a Plataforma Xamarin

Integração Continua

• Team City

• TFS

• Jenkins

• Travis

Page 72: Conheça a Plataforma Xamarin

TFS

• Integrado ao Visual Studio

• Integração ao Xamarin TestCloud

Page 73: Conheça a Plataforma Xamarin

Mac Build (iOS)

Page 74: Conheça a Plataforma Xamarin

CI e Monitoramento

Page 75: Conheça a Plataforma Xamarin

Xamarin Insights Analytics

• Rastreamento e Log da App;

• Crash Report;

• Monitoramento das sessões;

• Integração com bugreport;

• Integração com CI;

Page 76: Conheça a Plataforma Xamarin

Xamarin Profiler (beta)

• Call Stack;

• Consumo de memória;

• Tempo de execução;

• Alocação de memória;

• Snapshot da memória;

• Visualização de todos os objetos em memória.

Page 77: Conheça a Plataforma Xamarin

Xamarin e MicrosoftParceria estratégica

Page 78: Conheça a Plataforma Xamarin
Page 79: Conheça a Plataforma Xamarin

Tecnologias Microsoft

async

PCL &

Shared

Projects

Page 80: Conheça a Plataforma Xamarin

Parceria Global com Microsoft

• Suporte ao Visual Studio 2013 e 2015;

• Oferta especial para MSDN Subscribers• Preços especial

• Versão Trial de 90 dias

• .NET Foundation• 27 projetos Open Source Microsoft e Xamarin

• .NET Compiler Plataform “Roslyn”

• Xamarin’s MimeKit and Mailkit

Page 81: Conheça a Plataforma Xamarin

Xamarin no Grupo Viceri

1. Protótipo construído pelo design de UX;

2. Arquiteto define diretivas e organização do projeto;

3. Time de desenvolvimento C# constrói o aplicativo;

4. Arquitetura apoia o processo de DevOps;

Page 82: Conheça a Plataforma Xamarin

OBRIGADO William S. Rodriguez

Arquiteto de Soluções no Grupo Viceri

[email protected]