54
Sócio & Coordenador de desenvolvimento mobile MQBC.com.br Dirlei Dionísio Appcelerator Titanium

Desenvolvimento Multiplataforma com Appcelerator Titanium

Embed Size (px)

Citation preview

Page 1: Desenvolvimento Multiplataforma com Appcelerator Titanium

Sócio & Coordenador de desenvolvimento mobileMQBC.com.br

Dirlei Dionísio

Appcelerator Titanium

Page 2: Desenvolvimento Multiplataforma com Appcelerator Titanium

POR QUE DESENVOLVER MOBILE APPS?

Page 3: Desenvolvimento Multiplataforma com Appcelerator Titanium

‘Há mais dispositivos móveis ativos que pessoas no mundo’ (CNet)

Fonte: http://www.cnet.com/news/there-are-now-more-gadgets-on-earth-than-people

Page 4: Desenvolvimento Multiplataforma com Appcelerator Titanium

‘Há mais pessoas que usam apenas seus telefones para acessar a internet

que pessoas que usam apenas desktops’ (Business Insider)

Fonte: http://www.businessinsider.com/mobile-internet-users-pass-desktop-users-2015-4

Page 5: Desenvolvimento Multiplataforma com Appcelerator Titanium

‘Usuários gastam 89% do tempo consumindo conteúdo em apps; e apenas 11%, no browser’ (Nielsen)

Fonte: http://www.smartinsights.com/marketplace-analysis/customer-analysis/consumer-media-device-use/

Page 6: Desenvolvimento Multiplataforma com Appcelerator Titanium

‘Visando otimizar o uso dos dispositivos móveis, os usuários abrem mão do navegador de uso

geral. Eles usam a Internet, mas não a web’

(Chris Anderson, Wired)

Fonte: http://www.wired.com/2010/08/ff_webrip/all/1

Page 7: Desenvolvimento Multiplataforma com Appcelerator Titanium

QUE PLATAFORMA ESCOLHER?

Page 8: Desenvolvimento Multiplataforma com Appcelerator Titanium

QUE PLATAFORMA ESCOLHER?

QUAISS

Page 10: Desenvolvimento Multiplataforma com Appcelerator Titanium

O DESAFIO PARA O DESENVOLVEDOR

xCodeCocoa Touch

Objective-C/Swift

Eclipse/Android StudioAndroid SDK/Google APIs

Java

Ferramentas, frameworks, bibliotecas e linguagens diferentes.Pouco reaproveitamento de conhecimento entre as plataformas.

0% de reaproveitamento de código.

Page 11: Desenvolvimento Multiplataforma com Appcelerator Titanium

REESCREVER A APP INTEIRA EM CADA PLATAFORMA OU…

Page 12: Desenvolvimento Multiplataforma com Appcelerator Titanium

…USAR UMA ABORDAGEM DE DESENVOLVIMENTO MULTIPLATAFORMA

Page 13: Desenvolvimento Multiplataforma com Appcelerator Titanium

O DESENVOLVIMENTO MULTIPLATAFORMA É COMO SE COMUNICAR COM

ESTRANGEIROS USANDO INTÉRPRETES.

Page 14: Desenvolvimento Multiplataforma com Appcelerator Titanium

OU COMO PRODUZIR UM FILME E ADICIONAR DUBLAGEM PARA VÁRIOS

IDIOMAS

Page 15: Desenvolvimento Multiplataforma com Appcelerator Titanium

HÁ 3 ABORDAGENS DE DESENVOLVIMENTO MULTIPLATAFORMA

• Mobile Web • Híbrida • Nativa

Page 16: Desenvolvimento Multiplataforma com Appcelerator Titanium

MOBILE WEBConsiste em criar sites otimizados para browsers de dispositivos

móveis (web apps).

Usando os recursos do HTML5, podem funcionar total ou parcialmente offline.

Prós:

- Suporte a inúmeras plataformas

- Updates instantâneos.

Contra:

- Acesso fraco ou inexistente ao hardware dos

dispositivos.

- Não pode ser publicada nas lojas oficiais

Page 17: Desenvolvimento Multiplataforma com Appcelerator Titanium

ABORDAGEM HÍBRIDAWeb Apps embutidas numa app nativa. São fortemente apoiadas

no elemento WebView de cada plataforma.

UI e Regras de negócio(HTML/CSS, JavaScript)

API do framework(JavaScript)

WebView

Código Nativo (Obj-C/Java/C#)

App

híbrida

Page 18: Desenvolvimento Multiplataforma com Appcelerator Titanium

ABORDAGEM HÍBRIDAPrós Contras

• Suporte a um bom número de plataformas

• Familiar para desenvolvedores web

• UX prejudicada; elementos de UI, transições e animações são simulações do equivalente nativo (no melhor caso)

• Sujeitas às diferenças nas engines de renderização HTML/CSS

Page 19: Desenvolvimento Multiplataforma com Appcelerator Titanium

ABORDAGEM HÍBRIDAFacebook deixou de usar a

abordagem híbrida em 2012.

'Quando se trata de plataformas como iOS, as pessoas esperam uma

experiência ágil e confiável e nossa app estava aquém disso.'

'O desenvolvimento nativo nos dá maiores oportunidades de manter a app mais rápida, estável e rica em recursos.'

Jonathan Dann, Software Engineer, Facebook

Fonte: https://www.facebook.com/notes/facebook-engineering/under-the-hood-rebuilding-facebook-for-ios/10151036091753920

Page 20: Desenvolvimento Multiplataforma com Appcelerator Titanium

ABORDAGEM HÍBRIDALinkedIn deixou de usar a

abordagem híbrida em 2013.

'Mudamos para o nativo para obter algumas das animações, os "spinners" e o

jeito como eles funcionam, aquela suavidade; nós concluímos que

precisávamos do nativo para fazer isso bem feito.’

Kiran Prasad, Senior Director for Mobile Engineering, LinkedIn

Fonte: http://venturebeat.com/2013/04/17/linkedin-mobile-web-breakup/

Page 21: Desenvolvimento Multiplataforma com Appcelerator Titanium

ABORDAGEM NATIVA

Código da APP (linguagem familiar)

Tradutor

Código nativo iOS(Objective-C/Swift)

Código nativo Android(Java)

xCode Android Development Tools

App iOS App Android

Código nativo WP(C#)

Visual Studio

App WP

Page 22: Desenvolvimento Multiplataforma com Appcelerator Titanium

ABORDAGEM NATIVA: GOOGLE INBOX

Fonte: http://gmailblog.blogspot.com.br/2014/11/going-under-hood-of-inbox.html

Page 23: Desenvolvimento Multiplataforma com Appcelerator Titanium

ABORDAGEM NATIVA:FACEBOOK GROUPS E ADS MANAGER

Fonte: https://code.facebook.com/posts/1014532261909640/react-native-bringing-modern-web-techniques-to-mobile

Page 24: Desenvolvimento Multiplataforma com Appcelerator Titanium

ABORDAGEM NATIVA: DROPBOX MAILBOX E CAROUSEL

Fonte: http://oleb.net/blog/2014/05/how-dropbox-uses-cplusplus-cross-platform-development/

Page 25: Desenvolvimento Multiplataforma com Appcelerator Titanium

Appcelerator Titanium

Page 26: Desenvolvimento Multiplataforma com Appcelerator Titanium

PLATAFORMAS SUPORTADAS

Page 27: Desenvolvimento Multiplataforma com Appcelerator Titanium

COMO O TITANIUM FUNCIONA

Código da APP (JavaScript)

API Titanium

iOS (JavaScript)

API Titanium Android

(JavaScript)

API Titanium

multiplataforma (JavaScript)

API iOS Nativa (Objective-C)

API Android Nativa (Java)

Page 28: Desenvolvimento Multiplataforma com Appcelerator Titanium

RAIO-X DE UMA APP TITANIUM

Código Objective-C compilado

Arquivo .IPA (iOS)

Bytecode Java

Código JavaScript

otimizado e minificado

Imagens, strings, arquivos de configuração

etc.

Arquivo .APK (Android)

V8 JavaScript Engine

Imagens, strings, arquivos de configuração

etc.

Código JavaScript

otimizado e minificado

Page 29: Desenvolvimento Multiplataforma com Appcelerator Titanium

A API MUTIPLATAFORMA

Calendário

Contatos

Database

Facebook

Filesystem

Geolocalização

Gestos

Áudio

Vídeo

HTTP

Socket

XML

Internacionalização

Interface com o Usuário

Page 30: Desenvolvimento Multiplataforma com Appcelerator Titanium

ELEMENTOS DE UI NATIVOS

iOS6 iOS7+

Page 31: Desenvolvimento Multiplataforma com Appcelerator Titanium

ELEMENTOS DE UI NATIVOS

Android 4.x Android 5.xAndroid 2.3

Page 32: Desenvolvimento Multiplataforma com Appcelerator Titanium
Page 33: Desenvolvimento Multiplataforma com Appcelerator Titanium

BENEFÍCIOS DA APP NATIVA

'Queremos proporcionar aos usuários a experiência nativa, no iPhone, iPad e dispositivos Android. Nossa aplicação nesses

dispositivos deve se comportar assim como os usuários esperam que elas se comportem. Os usuários querem uma experiência que se integre perfeitamente com a plataforma em que estão usando no momento. Eles querem alta performance, o que normalmente só é obtido través das bibliotecas nativas do

dispositivo ou do sistema operacional.’- Karen White, CEO do Syncplicity

Fonte: http://readwrite.com/2011/09/06/syncplicity-makes-the-case-for

Page 34: Desenvolvimento Multiplataforma com Appcelerator Titanium

ALLOY - O FRAMEWORK MVC DO TITANIUM

• Estrutura da UI em XML

• Estilo em TSS (equivale ao CSS)

• Controller em JavaScript

• Backbone.js para models e collections

Page 35: Desenvolvimento Multiplataforma com Appcelerator Titanium

View

Style

Controller

Page 36: Desenvolvimento Multiplataforma com Appcelerator Titanium

MILHARES DE WIDGETS, MÓDULOS E BIBLIOTECAS DISPONIBILIZADOS PELA COMUNIDADE

http://gitt.io

http://alloylove.com

https://marketplace.appcelerator.com

Page 37: Desenvolvimento Multiplataforma com Appcelerator Titanium

RESUMO DAS VANTAGENS• Desenvolvimento multiplataforma em uma linguagem popular, fácil de

aprender e manter - JavaScript

• Utilização do padrão MVC, facilitando a organização e manutenção

• Reaproveitamento de código de 50 a 90%

• Produção de apps verdadeiramente nativas (não web-based), aproveitando ao máximo os elementos de UI nativos

• Extensibilidade garantida com módulos nativos

• Possibilidade de criar web apps, apps híbridas e nativas

Page 38: Desenvolvimento Multiplataforma com Appcelerator Titanium

DESVANTAGENS

• A API do Titanium não cobre 100% das APIs nativas

• Tamanho maior da app no Android e WP (pelo menos +5mb)

• Builds mais lentos que os feitos apenas com ferramentas nativas

• Uma camada extra de bugs

Page 39: Desenvolvimento Multiplataforma com Appcelerator Titanium

QUANTO CUSTA?

Titanium é free e open source,sem restrições de uso.

• Titanium CLI

• Titanium SDK

• Alloy MVC Framework

Page 40: Desenvolvimento Multiplataforma com Appcelerator Titanium

PLATAFORMA APPCELERATOR

Page 41: Desenvolvimento Multiplataforma com Appcelerator Titanium

PLATAFORMA APPCELERATOR

Titanium

Page 42: Desenvolvimento Multiplataforma com Appcelerator Titanium

Arrow é um Mobile Backend as a Service (MBaaS) que oferece um jeito fácil e rápido de desenvolver apps conectadas.

Chat Checkin

E-mail

Events Files

Friends Messages

Objects PhotoCollection

Photos

Push Notifications

Reviews

Social Integrations

Users SMS

ARROW

Page 43: Desenvolvimento Multiplataforma com Appcelerator Titanium

ANALYTICS EM TEMPO REAL

Page 44: Desenvolvimento Multiplataforma com Appcelerator Titanium

MONITORAMENTO DE ERROS EM TEMPO REAL

Mensagem de erro

Arquivo e linha que causou o

erro

Número de ocorrências

Usuários afetados

Dados do ambiente

Integração ao Jira

Page 45: Desenvolvimento Multiplataforma com Appcelerator Titanium

LIVE VIEW

https://www.youtube.com/watch?v=m5M4qrjT6DI

https://www.youtube.com/watch?v=nbbcj12_bgQ

Page 46: Desenvolvimento Multiplataforma com Appcelerator Titanium

TESTES AUTOMATIZADOS

https://www.youtube.com/watch?v=SJVe56mT8KM

Page 47: Desenvolvimento Multiplataforma com Appcelerator Titanium

CASES

Page 48: Desenvolvimento Multiplataforma com Appcelerator Titanium

GLOBO - RADIOBEAT

https://play.google.com/store/apps/details?id=com.aorta.radiobeat

https://itunes.apple.com/br/app/radiobeat/id598225415

Page 49: Desenvolvimento Multiplataforma com Appcelerator Titanium

SENAC - MINIDICIONÁRIO DE ENOLOGIA EM 6 IDIOMAS

https://play.google.com/store/apps/details?id=br.senac.rj.minidicenologia

https://itunes.apple.com/br/app/minidicionario-de-enologia/id1028917554

Page 50: Desenvolvimento Multiplataforma com Appcelerator Titanium

APPNEWS DELIVERY

https://play.google.com/store/apps/details?id=com.appnewsdelivery.app

https://itunes.apple.com/us/app/appnews-delivery/id1038953191

Page 51: Desenvolvimento Multiplataforma com Appcelerator Titanium
Page 52: Desenvolvimento Multiplataforma com Appcelerator Titanium

POR ONDE COMEÇAR?

Plataforma Appcelerator: http://appcelerator.com

Titanium SDK + CLI + Atom https://github.com/m1ga/titanium_with_atom

Comunidades brasileiras: https://www.facebook.com/groups/timobilebr

https://groups.google.com/group/titanium-mobile-br

Page 53: Desenvolvimento Multiplataforma com Appcelerator Titanium

'Não existe ferramenta, framework ou técnica que alcance todos os dispositivos e plataformas sem abrir mão de

algumas funcionalidades ou sem a necessidade de portar alguns trechos de código. E essa é a realidade não apenas do

desenvolvimento mobile, mas também da maior parte de todo desenvolvimento de software.'

(Mobile Learning Environment)

http://www.amazon.com/Mobile-Learning-Environment-MoLE-Project/dp/1482558181

Page 54: Desenvolvimento Multiplataforma com Appcelerator Titanium

PERGUNTAS?

@DirleiDionisio | [email protected] | mqbc.com.br

Dirlei Dionísio