67
Aplicativos Android Nativos com C#

Construindo Aplicativos Android Nativos com C#

Embed Size (px)

Citation preview

Aplicativos Android Nativos com C#

William S. Rodriguez @williamsrodz

[email protected]

Father • Community Addicted

Quem?

#MonkeyNights • #DotNetCuritiba • #DevExp/DevDay

Comunidades!

silos

Cross Platform Apps

Escreva uma vez e execute em qualquer lugar.

Interfaces fora do padrão

Performance não nativa

Acesso a API’s limitados

Black Box

Magic / Black Box

Bom para o desenvolvedor…

Bom para o cliente…

Péssimo para o usuário!

"The biggest mistake we made as a company was betting too

much on HTML5 rather than native"

Image source huffingtonpost.in

HTML5

Image source huffingtonpost.in

APP NATIVA

"Webviews are the duct tape of the mobile world"

https://medium.com/bpxl-craft/apple-tv-a-world-without-webkit-5c428a64a6dd

Native Apps

"People expect great experiences from their

mobile devices"

Miguel de Icaza

Native AppsInterface de Usuário NativaApp’s são construídas utilizando interface e , controles padrão permitindo interações fáceis e familiares

High-fidelity API AccessApp’s têm acesso a toda a gama de funcionalidade exposta pela plataforma independente de dispositivo

Native PerformanceApp’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.

"Only native apps deliver the high-quality, high- performance

apps that your users expect"

John Doe

Então?

Como compartilhar e reutilizar código…

sem sacrificar, ux, performance ou features?

Mono

• Open source implementation of the CLR

• Execute .Net code across Linux, MacOS X, Solaris, BSD, Wii, PS3…

• Started in 2001 as Ximian, purchased by Novell in 2003, released in 2004;

• Mono “died" in April 2011 when Novel was acquired by Attachmate Group;

Mono

• 2009, Mono.Touch created (released in 2010);

• 2010: Mono.Droid created (release in 2011);

• May 2011 Xamarin was founded;

Mono

C# em 2.6 bilhões de dispositivos

+ +

C# em 2.6 bilhões de dispositivos

Xamarin

4 anos de vida

+1 milhão de desenvolvedores

15 mil clientes utilizando a plataforma

Xamarin utiliza uma Abordagem Única

C#

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

Xamarin Abordagem Tradicional

Shared C# Client/Server

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

Shared C# Mobile

iOS C# UI

Windows C# UIAndroid C# UI

C# Server

Linux/Mono CoreCLRAzure

Xamarin Forms

Shared C# Client/Server

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

Shared C# Mobile C# Server

Linux/Mono CoreCLRAzure

Xamarin é 100% Código Nativo

Debug de objetos Java e Objective C

Interoperabilidade com linguagem nativa

Utilizar bibliotecas Android e iOS de forma

nativa

Empacotar e disponibilizar uma

aplicação nativa única

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

C#

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

C#

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

C#

Native Android packages

Xamarin.Android tira vantage da compilação Just In Time (JIT) nos dispositivos Android.

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 M

100% de suporte ao iOS 8 (no mesmo dia)

Compartilhamento de Código

C#

70%

Backend

C#

30%

UI

* Media de Compartilhamento

Compartilhamento de Código

20%

C#

Client / Server

86%

C#

Android

75%

C#

iOS

85%

C#

Windows RT

http://icircuitapp.com/

50 milhões de linhas de código compartilhado

rdio

Xamarin.Android

Xamarin Installer

https://xamarin.com/download

Ambiente de Desenvolvimento

Windows Visual Studio ou Xamarin Studio

Mac Xamarin Studio

Xamarin Android Designer

• Integração completa com Visual Studio;

• Drag and drop de componentes;

• Muilti edit.

Anything you can do in Android Studio, you can do in Xamarin

Studio ou Visual Studio

Xamarin Android Player

Goole Nexus 4 Xamarin Android Player Google Emulator

65

1853

1565

GeekBench 3 Mult-core

Documentação

https://developer.android.com/guide/index.html

https://developer.xamarin.com/guides/android/

Componentes

https://components.xamarin.com

C#

Anything you can do in Objective-C, Swift or Java, you

can do in C#.

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 == id select p;

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

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

var client = new HttpClient(); var getStringTask = await client.GetStringAsync(“http://28bytes.com.br”);

Demo

Xamarin Studio

Novo App

Novo App

Activity, code view

Activity, design view

Activity, design xml view

http://bit.ly/mixradioapp

http://bit.ly/DsKids

http://bit.ly/1MsEHNb

Dúvidas?

Para saber mais

• https://xamarin.com

• http://developer.xamarin.com/guides/android/

• https://www.facebook.com/MonkeyNightsDevs

• http://monobrasil.com

Quanto Custa?

William S. Rodriguez @williamsrodz

[email protected]

Obrigado :)

Father • Community Addicted