SlideShare a Scribd company logo
1 of 56
Download to read offline
Dirlei Dionísio & Valmir Santana | mqbc.com.br
Desenvolvimento
Multiplataforma NATIVO
com Appcelerator
HISTÓRIA DE JOÃO:
JOÃO É FUNDADOR DE UMA
STARTUP EM BUSCA DE
INVESTIMENTO.
ELE RECEBE UM CONVITE
INUSITADO:
APRESENTAR SEU PRODUTO E
MODELO DE NEGÓCIOS PARA 2
GRUPOS DE INVESTIDORES:
UM QUE SÓ FALA JAPONÊS E
OUTRO QUE SÓ FALA MANDARIM.
JOÃO NÃO FALA NENHUM
DESSES IDIOMAS.
MAS ELETEM UMA AMIGA QUE
FALA FLUENTEMENTE JAPONÊS
E MANDARIM.
JOÃO DEVE…
A. Recusar a oportunidade de conversar com os
investidores
B. Começar a aprender japonês e mandarim e
depois procurar os investidores
C. Usar sua amiga como intérprete
JOÃO DEVE…
A. Recusar a oportunidade de conversar com os
investidores
B. Começar a aprender japonês e mandarim e
depois procurar os investidores
C. Usar sua amiga como intérprete
FERRAMENTAS MULTIPLATAFORMA
SÃO COMO INTÉRPRETES
Habilitam programadores a desenvolver aplicativos
para iOS e Android sem conhecer as linguagens
nativas.
MAS EU CONHEÇO
OBJ-C, SWIFT E JAVA!
HISTÓRIA DE MARIA:
MARIA É PRODUTORA,
ROTEIRISTA E DIRETORA DE
CINEMA.
ELA QUER PRODUZIR UM FILME E
LANÇÁ-LO EM 3 IDIOMAS: INGLÊS,
PORTUGUÊS E ESPANHOL.
ELA FALA ESSES 3 IDIOMAS,TEM
DINHEIRO PRA INVESTIR, MASTEM
PRESSA.
MARIA DEVE…
A. Gravar todas as cenas do filme em cada um

dos 3 idiomas
B. Gravar o filme inteiro em um só idioma e

adicionar dublagem e legenda para os

demais idiomas depois
MARIA DEVE…
A. Gravar todas as cenas do filme em cada um

dos 3 idiomas
B. Gravar o filme inteiro em um só idioma e

adicionar dublagem e legenda para os

demais idiomas depois
DESENVOLVIMENTO MULTIPLATAFORMA
É COMO PRODUZIR UM FILME COM
DUBLAGEM
Você pode até ser capaz de gravar um filme inteiro em
vários idiomas, mas normalmente não irá fazê-lo porque
prefere otimizar o uso dos seus recursos.
HÁ 3 ABORDAGENS DE
DESENVOLVIMENTO MULTIPLATAFORMA
• Mobile Web
• Híbrida
• Nativa
MOBILE WEB
Consiste 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
ABORDAGEM HÍBRIDA
Web Apps embutidas numa app nativa. São fortemente apoiadas
no elemento WebView de cada plataforma.
API Nativa
(Obj-C/Swift/Java/C#)
UI e Regras de negócio
(HTML/CSS, JavaScript)
API do framework
(JavaScript)
WebView Nativa
Window Nativa
ABORDAGEM HÍBRIDA
Pró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
ABORDAGEM HÍBRIDA
Facebook 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
ABORDAGEM HÍBRIDA
LinkedIn 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/
ABORDAGEM
MULTIPLATAFORMA
NATIVA
ABORDAGEM
MULTIPLATAFORMA NATIVA
Código da aplicação
"Tradutor"
Código nativo iOS
(Objective-C/Swift)
Código nativo Android
(Java)
xCode Android DevelopmentTools
App iOS App Android
Código nativo WP
(C#)
Visual Studio
App WP
GOOGLE INBOX
Fonte: http://gmailblog.blogspot.com.br/2014/11/going-under-hood-of-inbox.html
FACEBOOK GROUPS E ADS MANAGER
Fonte: https://code.facebook.com/posts/1014532261909640/react-native-bringing-modern-web-techniques-to-mobile
ABORDAGEM
MULTIPLATAFORMA NATIVA
2015
2009
2009
2015
Appcelerator Titanium
PLATAFORMAS SUPORTADAS
COMO OTITANIUM 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)
RAIO-X DE UMA APPTITANIUM
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
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
Acelerômetro
Mapas
APIS ESPECÍFICAS
NewsKit
iOS
Touch ID
SafariDialog
SplitWindow (iPad)
Android
ActionBar
Intent
Services
BroadcastReceiver
ActivityToolbar,TabbedBar
ELEMENTOS DE UI NATIVOS
ALLOY - O FRAMEWORK MVC DO
TITANIUM
• Estrutura da UI em XML
• Estilo emTSS (equivale ao CSS)
• Controller em JavaScript
• Backbone.js para models e collections
View
Style
Controller
HYPERLOOP – MOTIVAÇÃO
• Ter acesso a novidades nas API's nativas sem precisar aguardar novas
versões doTitanium
• Utilizar API’s de terceiros que não sejam JavaScript sem precisar de
módulos nativos (e.g. periféricos)
• Ter acesso a recursos não disponibilizados pela API doTitanium (e.g.
Foreground Services do Android)
• Poder de escrever módulos nativos sem conhecer as linguagens nativas
(basta conhecer a API)
HYPERLOOP – VANTAGENS
• Acesso a 100% da API nativa de cada plataforma
• Possibilidade de estender classes escritas em código nativo (Obj-C/
Swift/Java) usando JavaScript
• Acesso a NSBundle via require do JavaScript (e.g. XIB)
• Acesso a bibliotecas nativas de terceiros (.jar, .dylib, .a)
• Possibilidade de escrever partes do código em linguagem nativa
Exemplos em http://github.com/appcelerator/hyperloop-examples
MILHARES DE WIDGETS, MÓDULOS E BIBLIOTECAS
DISPONIBILIZADOS PELA COMUNIDADE
gitt.io
alloylove.com
marketplace.appcelerator.com
loopmodules.com
RESUMO DASVANTAGENS
• 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 à 95%
• UI verdadeiramente nativa (não web-based)
• Acesso a 100% da API nativa com módulos e/ou Hyperloop
DESVANTAGENS
• Tamanho maior da app no Android (~4mb)
• Builds completos mais lentos que os feitos apenas com
ferramentas nativas (minimizado com LiveView)
• Uma camada extra de bugs
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
ANALYTICS EMTEMPO REAL
MONITORAMENTO DE ERROS
EMTEMPO 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
TESTES AUTOMATIZADOS
https://www.youtube.com/watch?v=SJVe56mT8KM
CASES DA MQBC
CAIXA SEGURADORA
Google Play
App Store
AXWAY - ROADTO DIGITAL
Google Play
App Store
GLOBO - RADIOBEAT
Google Play
App Store
SENAC - MINIDICIONÁRIO DE
ENOLOGIA EM 6 IDIOMAS
Google Play
App Store
APPNEWS DELIVERY
Google Play
App Store
CREA-RJ – FISCAL
CASES GLOBAIS
POR ONDE COMEÇAR?
Plataforma Appcelerator:
http://appcelerator.com
Titanium SDK + CLI + Atom (OSS)
https://github.com/m1ga/titanium_with_atom
Comunidades:
tislack.org
facebook.com/groups/timobilebr
PERGUNTAS?
@DirleiDionisio | dirlei@mqbc.com.br
vsantana@mqbc.com.br

More Related Content

What's hot

Introdução ao Titanium Appcelerator
Introdução ao Titanium AppceleratorIntrodução ao Titanium Appcelerator
Introdução ao Titanium Appceleratordfjorge
 
Aplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile Apps
Aplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile AppsAplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile Apps
Aplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile AppsWilliam S. Rodriguez
 
API - Por que me importar?
API - Por que me importar?API - Por que me importar?
API - Por que me importar?Alê Borba
 
Eureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou HíbridoEureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou Híbridodrbatiston
 
Desenvolvendo aplicações Cross-Platform com Xamarin
Desenvolvendo aplicações Cross-Platform com XamarinDesenvolvendo aplicações Cross-Platform com Xamarin
Desenvolvendo aplicações Cross-Platform com XamarinJúnior Porfirio
 
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...William S. Rodriguez
 
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Pedro Edson Silva Barros
 
Desenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e androidDesenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e androidDiogo Andre Loff
 

What's hot (10)

Introdução ao Titanium Appcelerator
Introdução ao Titanium AppceleratorIntrodução ao Titanium Appcelerator
Introdução ao Titanium Appcelerator
 
Aplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile Apps
Aplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile AppsAplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile Apps
Aplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile Apps
 
API - Por que me importar?
API - Por que me importar?API - Por que me importar?
API - Por que me importar?
 
Eureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou HíbridoEureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou Híbrido
 
Desenvolvendo aplicações Cross-Platform com Xamarin
Desenvolvendo aplicações Cross-Platform com XamarinDesenvolvendo aplicações Cross-Platform com Xamarin
Desenvolvendo aplicações Cross-Platform com Xamarin
 
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
 
CoderockrJam Entendendo OAuth com Zend
CoderockrJam Entendendo OAuth com ZendCoderockrJam Entendendo OAuth com Zend
CoderockrJam Entendendo OAuth com Zend
 
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
 
1 curso-titanium-apresentacao
1 curso-titanium-apresentacao1 curso-titanium-apresentacao
1 curso-titanium-apresentacao
 
Desenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e androidDesenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e android
 

Similar to Appcelerator Titanium – B2W Digital

React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...Emiliano Barbosa
 
Aplicações Móveis Híbridas
Aplicações Móveis HíbridasAplicações Móveis Híbridas
Aplicações Móveis HíbridasThomas Kanzig
 
Apresentação JAVOU 5
Apresentação JAVOU 5Apresentação JAVOU 5
Apresentação JAVOU 5Bruno Muniz
 
Java Para Web 2.0
Java Para Web 2.0Java Para Web 2.0
Java Para Web 2.0guest8ca153
 
Introdução ao desenvolvimento de apps com Phonegap
Introdução ao desenvolvimento de apps com PhonegapIntrodução ao desenvolvimento de apps com Phonegap
Introdução ao desenvolvimento de apps com PhonegapDiogo Souza Machado
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoRodrigo Reis
 
Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005Phil Calçado
 
Marketing digital tecnologia da informação
Marketing digital   tecnologia da informaçãoMarketing digital   tecnologia da informação
Marketing digital tecnologia da informaçãoAna Paula Coelho Barbosa
 
Adobe Phonegap
Adobe PhonegapAdobe Phonegap
Adobe Phonegapwlsilva
 
Java No Mundo Real
Java No Mundo RealJava No Mundo Real
Java No Mundo RealSaulo Arruda
 
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo FilhoDesenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo FilhoTchelinux
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO IOs Fantasmas !
 
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Leonardo Melo Santos
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Criciúma Dev
 

Similar to Appcelerator Titanium – B2W Digital (20)

React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...
 
Aplicações Móveis Híbridas
Aplicações Móveis HíbridasAplicações Móveis Híbridas
Aplicações Móveis Híbridas
 
Apps Hibridos
Apps HibridosApps Hibridos
Apps Hibridos
 
Apresentação JAVOU 5
Apresentação JAVOU 5Apresentação JAVOU 5
Apresentação JAVOU 5
 
A vez do mobile - Dev in Bahia #3
A vez do mobile - Dev in Bahia #3A vez do mobile - Dev in Bahia #3
A vez do mobile - Dev in Bahia #3
 
Java Para Web 2.0
Java Para Web 2.0Java Para Web 2.0
Java Para Web 2.0
 
BrazilJS 2012
BrazilJS 2012BrazilJS 2012
BrazilJS 2012
 
Introdução ao desenvolvimento de apps com Phonegap
Introdução ao desenvolvimento de apps com PhonegapIntrodução ao desenvolvimento de apps com Phonegap
Introdução ao desenvolvimento de apps com Phonegap
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
 
Por que Java?
Por que Java?Por que Java?
Por que Java?
 
Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005
 
Marketing digital tecnologia da informação
Marketing digital   tecnologia da informaçãoMarketing digital   tecnologia da informação
Marketing digital tecnologia da informação
 
Adobe Phonegap
Adobe PhonegapAdobe Phonegap
Adobe Phonegap
 
Java No Mundo Real
Java No Mundo RealJava No Mundo Real
Java No Mundo Real
 
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo FilhoDesenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
 
Mergulhando no ecossistema .NET
Mergulhando no ecossistema .NETMergulhando no ecossistema .NET
Mergulhando no ecossistema .NET
 
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
 
Flutter for tche linux
Flutter for tche linuxFlutter for tche linux
Flutter for tche linux
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
 

Appcelerator Titanium – B2W Digital