Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma?...

61
Quer desenvolver aplicações mobile nativas e cross-plataforma? Pergunte-me como! Paulo Ortins - @pauloortins – [email protected]

description

Nessa apresentação pretendo mostrar como podemos desenvolver aplicações mobile nativas para iOS, Android e Windows Phone utilizando C# com o Xamarin e compartilhando até 75% do código entre as plataformas. É uma vantagem em tanto no mundo atual onde devemos atender o maior número de devices com o menor custo possível.

Transcript of Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma?...

Page 1: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Quer desenvolver aplicaçõesmobile nativas e cross-plataforma?

Pergunte-me como!

Paulo Ortins - @pauloortins – [email protected]

Page 2: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Sócio - OnceDev

Mestrando - UFBA

pauloortins.com

Linguágil

#HoraExtra

Métricas de Código

Page 3: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Mobile Apps?

Page 4: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Web Apps

Hybrid Apps

Native Apps

Page 5: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!
Page 6: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

33%da população mundial

Page 7: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Planos 3G/4G x Pessoas

0

1

2

3

4

5

6

7

8

2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018

Planos 3G/4G

Pessoas

Page 8: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Algumas dessas pessoas nem usam desktop…

…elas estão usando apenas dispositivos móveis!

Page 9: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Mobile-Only Web Users

0

10

20

30

40

50

60

70

80

Page 10: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

30% dos usuários são exclusivamentemobile

Page 11: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Uso dos Devices

Page 12: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Mobile Web x Apps

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

2013 2014

Mobile Web

Apps

Page 13: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Percentual de Uso

Gaming32%

Facebook17%

Twitter1%

Social Messaging

10%Youtube

4%

Entertainment4%

Utilities8%

Productivity4%

News3%

Others3%

Apple Safari7%

Chrome5%

Others2%

Page 14: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Facebook (HTML)

Page 15: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Facebook (Native)

Page 16: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Video

Page 17: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Como desenvolver aplicações nativas?

Page 18: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

UI

WindowsPhone

ViewModels

Services

APIs Nativas

UI

Android

ViewModels

Services

APIs Nativas

UI

iOS

ViewModels

Services

APIs Nativas

Uma linguagem para cada plataforma

Page 19: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!
Page 20: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Como o MS C# funciona

Page 21: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Como o Mono C# funciona

Page 22: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

UI

WindowsPhone

ViewModels

Services

APIs Nativas

UI

Android

ViewModels

Services

APIs Nativas

UI

iOS

ViewModels

Services

APIs Nativas

Page 23: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Xamarin

UI

WindowsPhone

UI

Android

UI

iOS

ViewModels

Serviços

APIs Nativas

Page 24: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

RDIO

Page 25: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Espelho das APIs Nativas

WindowsPhone

Android

Text-to-speech

iOS

System.NetSystem

System.IOSystem.XmlSystem.Linq

ActionBarNFC

PrintingRenderScript

Microsoft.Phone

Windows.Networking

Windows.Storage

Windows.Foundation

Microsoft.Devices

MapKitUIKit

iBeaconCoreGraphicsCoreMotion

Page 26: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

IDEs

Page 27: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Demo: Tasky App

Page 28: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Xamarin.Forms

Page 29: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Xamarin.Forms

WindowsPhone

AndroidiOS

ViewModels

Serviços

APIs Nativas

UI

Page 30: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Xamarin.Forms

Page 31: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Xamarin.Forms

Page 32: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Demo: Xamarin.Forms

Page 33: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Compartilhamento de Código

Page 34: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

iCircuit

Page 35: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

iCircuit

90%

86%70%

Code Sharing

Page 36: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Calca

Page 37: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Calca

86%

-77%

Code Sharing

Page 38: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

TouchDraw

Page 39: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

TouchDraw

-

72%61%

Code Sharing

Page 40: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

>100%mais produtivos

Page 41: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Testes

Page 42: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!
Page 43: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

8%dos devs mobile usam

testes

Page 44: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

• Mas no final das contastestar o software deveriaser muito mais importante, principalmente no mobile,

• Uma vez que após um release já era

Page 45: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Quando bugs acontecem… eles ACONTECEM!

Page 46: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!
Page 47: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

+100setups disponíveis para

testar seu app

Page 48: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Custos

Page 49: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!
Page 50: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

$100/yearStudents Only

Page 51: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Mercado

Page 52: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

700.000desenvolvedores

cadastrados

Page 53: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

15.000clientes

Page 54: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

$700por dia

Page 55: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!
Page 56: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!
Page 57: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Frequently Asked Questions

Page 58: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

1. Quanto tempo leva para o Xamarin adicionar suporte paranovas versões do Android/iOS?

Page 59: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

2. Posso reutilizar código Java ouObjective-C no Xamarin?

Page 60: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

3. O que acontece quando minhalicença expira?

Page 61: Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-plataforma? Pergunte-como!

Obrigado!

Paulo Ortins - @pauloortins – [email protected]