Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
RESUMO
Este trabalho tem como objetivo fazer uma anlise da atual situao das
plataformas mveis do ponto de vista tanto do desenvolvedor, quanto de negcios,
trazendo uma comparao tcnica sobre cada uma das plataformas mais populares,
listando os benefcios e malefcios de cada abordagem e sugerindo uma opo mais
vivel em termos de custo e tempo de desenvolvimento, utilizando a WEB e suas
tecnologias como uma interface de alto nvel para os recursos nativos das
plataformas mobile. Se baseando em casos de uso do mundo real, este trabalho
explicita os problemas recorrentes nos projetos de desenvolvimento de aplicativos
para dispositivos mveis e tenta introduzir possveis solues utilizando uma
abordagem comumente chamada de multi-plataforma, que pode aproveitar ou no
de ferramentas e tecnologias j disponveis na WEB, facilmente acessveis e
assimilveis. Finalizando, lista opes de ferramentas j consolidadas no
desenvolvimento de aplicaes multi-plataforma, hbridas ou nativas, que tentam
solucionar justamente os problemas discutidos durante o discorrer deste trabalho,
deixando claros todos os caminhos disponveis para evitar ao mximo o desperdcio
de recursos e tempo em um projeto de aplicativo mobile.
ABSTRACT
This paper has the goal of making an analysis of the current mobile
platforms situation, not only in the developer`s point of view, but in the business point
of view as well. Bringing a tecnical overview of each of the most popular platforms,
listing the pros and cons of each approach and suggesting a more viable option in
terms of cost and development time, using the web and it`s technologies as a highlevel interface for the native resources of mobile platforms. Based on real-world use
cases, this paper explains the recurrent problems in mobile application development
projects and tries to introduce possible solutions using a common approach called
cross-platform, which can make use or not, of accessible tools and technologies
already available on the web. Finally, it lists some tool options, that are already
consolidated in cross-platform applications development, hybrid or native, and tries to
solve the problems discussed during the discourse of this paper, making clear all
available paths in order to minimize the waste of resources and time in a mobile
application project.
SUMRIO
Resumo ...................................................................................................................... 2
Abstract ...................................................................................................................... 3
1 Introduo ............................................................................................................... 5
1.1 Mobile no o futuro, o presente ....................................................................... 5
1.2 A ascenso e queda das startups ......................................................................... 7
1.3 A abordagem multi-plataforma e a WEB ............................................................. 11
2 Comparando as abordagens ............................................................................... 14
2.1 Aplicativos nativos: vantagens ............................................................................ 15
2.2 Aplicativos nativos: desvantagens....................................................................... 16
2.3 Aplicativos multi-plataforma/hibridos: vantagens ................................................ 18
2.4 Aplicativos multi-plataforma/hibridos: desvantagens........................................... 19
2.5 Por que a abordagem multi-plataforma/hibrida o ideal?................................... 19
3 Ferramentas para desenvolvimento de aplicativos multi-plataforma ............. 21
3.1 Apache Cordova .................................................................................................. 22
3.2 Appcelerator Titanium ......................................................................................... 29
3.3 Intel XDK ............................................................................................................. 35
3.4 Sencha Touch ..................................................................................................... 40
3.5 NativeScript ......................................................................................................... 45
3.6 React Native ........................................................................................................ 50
4 Concluso ............................................................................................................. 57
Referncias .............................................................................................................. 59
1 INTRODUO
Este trabalho ir tentar explicitar o quanto ferramentas oriundas do
desenvolvimento WEB tm influenciado de maneira positiva no desenvolvimento de
aplicativos mobile e o porque esta abordagem pode a vir se tornar a maneira mais
popular de desenvolver aplicativos, devido a sua facilidade, rapidez, baixo custo e
manutenibilidade. Tambm sero abordados cases e exemplos das ferramentas
citadas aqui e como seus benefcios podem ajudar a baratear o custo do
desenvolvimento de um aplicativo, se tornando uma tima maneira de validar uma
ideia e ajudando uma pequena/media empresa, startup ou desenvolvedor autnomo
entrar no disputado mundo dos apps.
Com esses nmeros fica fcil de perceber como o mobile sendo o principal
canal de aquisio e reteno de clientes no mais o futuro, e sim o presente, e as
empresas que no acompanharem esta tendncia pode ficar para trs muito rpido
e alcanar as empresas que s ultrapassaram pode se revelar improvvel.
As 20 razes pelas quais startups vem a falir, de acordo com seus fundadores (Fonte:
http://fortune.com/2014/09/25/why-startups-fail-according-to-their-founders/)
10
11
Tendo em vista o que a metodologia Lean Startup prega fica claro que uma
abordagem perfeita para pequenas startups, mas como podemos aplic-la no
contexto mobile? J que devemos ter em vista vrias plataformas para maior
alcance, como podemos desenvolver um MVP que atenda todas as plataformas e
ainda sim ser simples, rpido e barato de implementar?
12
13
abordagem torna possvel manter somente um projeto, uma base de cdigo, e por
meio de algum tipo de ferramenta de build e compilao, esta base cdigo portada
para cada plataforma escolhida, provendo uma experincia consistente em todas
elas.
J existem dezenas de ferramentas que implementam a abordagem multiplataforma, muitas delas j consolidadas no mercado, e todas elas implementam
esta abordagem de maneiras diferentes para justificar sua existncia.
Algumas ferramentas utilizam de linguagens como Java e C# para abstrair e
unificar as APIs similares de cada plataforma, resultando em s uma API, s um
framework, que encarregado de compilar para sua verso nativa de cada
plataforma. Outras utilizam uma abordagem mais simples, que consiste em utilizar
um componente de WebView, que funciona como um navegador embarcado na
aplicao que ir renderizar telas criadas com as tecnologias web mais conhecidas:
HTML, CSS e Javascript. Alm de fornecer uma API, geralmente via Javascript, para
comunicao com as caractersticas nativas que todo dispositivo mobile oferece,
como GPS, contatos, armazenamento local, acelermetro e giroscpio, vibrao e
at bluetooth.
A abordagem multi-plataforma utilizando ferramentas web j est muito
difundida entre os desenvolvedores que j possuem experincia com a tecnologias
web, pelo fato de no precisarem abdicar de todas suas habilidades e aprenderem
um novo ecossistema de ferramentas, somente para desenvolver um aplicativo
mobile nativo. Vrias grandes empresas tambm aderiram esta abordagem para
melhor utilizao de seus recursos na validao de um produto como aplicativo de
smartphones.
Este trabalho ir apresentar cases de sucesso e exemplos utilizando a
abordagem multi-plataforma, utilizando ferramentas web j consolidadas como
espinha dorsal de sua implementao. Sero apresentadas as ferramentas mais
populares que implementam essa abordagem, suas vantagens e desvantagens, e
como a adoo destas ferramentas em grande escala est mudando o mundo do
desenvolvimento de aplicativos nativos para sempre.
14
2 COMPARANDO AS ABORDAGENS
At ento foram citadas trs abordagens (sites responsivos/web apps, apps
nativos e apps multi-plataforma/hbridos) para desenvolvimento de aplicaes
mobile, embora este trabalho foque em somente um deles, preciso listar as
diferenas entre cada abordagem e o porqu da soluo proposta aqui, poder ser
uma abordagem melhor dependendo do escopo.
Na tabela abaixo feita uma comparao entre as abordagens de ao longo
de vrios items.
App nativo
Apps necessrios
para atingir todas as
plataformas mais
populares
App multi-plataforma
/ hibrido
HTML
HTML
CSS
Objective-C /
Swift
CSS
Javascript
Java
Javascript
C++
C#
Linguagem de
back-end
(nodeJS, PHP,
Ruby...)
Linguagem de
back-end
(nodeJS, PHP,
Ruby...)
Framework de
desenvolvimen
to mobile
Skill / ferramentas
necessrias para
desenvolvimento em
vrias plataformas
Instalado no
dispositivo?
Sim
No
Sim
Distribuio
App Store/Market
Internet
App Store/Market
Integrao com
dispositivo
Integrao total:
(cmera, microfone,
GPS, giroscpio,
acelermetro, upload
de arquivos, contatos,
bluetooth)
Integrao parcial:
(GPS, giroscpio,
acelermetro, upload
de arquivos)
Integrao total:
(cmera, microfone,
GPS, giroscpio,
acelermetro, upload
de arquivos, contatos,
bluetooth)
15
16
(Fonte: http://www.mrc-productivity.com/)
17
abordagem mais cara e que exige mais tempo para ser seguida. Por exemplo, a
Forrester Research, em uma de suas pesquisas, estima que aplicativos nativos
necessitam de pelo menos seis meses de trabalho e custam entre $20.000 e
$150.000 dependendo da sua complexidade. A mesma pesquisa resultou em uma
tabela de custos bem desanimadora para pequenos empreendedores.
Custo de um
aplicativo
Aplicativo de uma
plataforma
Nmero de
aplicativos
Custo total
necessrios
$20.000 - $150.000
$20.000 - $150.000
$20.000 - $150.000
$80.000 - $600.000
$20.000 - $150.000
Aplicativo de
vrias
plataformas
Aplicativo de
varias
plataformas +
aplicativos de
$160.000 $1.200.000
tablets
18
19
familiaridade
com
algum
framework
mobile
hibrido:
20
21
22
23
24
25
26
27
28
29
30
do
dispositivo
como
sistema
de
arquivos,
rede,
31
32
33
MarketplaceArtwork.png:
Imagens
da
loja
de
aplicativos.
34
Como foi dito anteriormente, o Appcelerator possui uma das maiores bases
de desenvolvedores cadastrados do mundo, robusto, com um ecossistema
completssimo de ferramentas que possibilitam a criao, manuteno e
monitoramento de aplicativos mobile. Oferece servios de back-end em que o
aplicativo pode se apoiar, como criao de APIs e envios de notificaes de Push.
de fcil aprendizado, tem incrvel performance quando comparado com outras
ferramentas
de
desenvolvimento
multi-plataforma,
simplifica
acelera
35
36
existentes. O Intel XDK pode ser baixado gratuitamente em seu site, e possui verso
para todos os sistemas operacionais mais populares.
Diferentemente das outras opes, o Intel XDK no requer nenhuma
dependncia para compilar aplicativos para as plataformas que ele suporta.
Utilizando o Apache Cordova por exemplo, para compilar um aplicativo iOS voc
necessita do XCode e suas ferramentas, e consequentemente, necessrio que
esteja utilizando o sistema operacional Mac OS X para que seja possvel iniciar o
processo de build. Com o Intel XDK isso no necessrio, como sua compilao
feita na nuvem, graas aos seus servios integrados, qualquer aplicativo pode ser
compilado para todas as plataformas de dispositivos em qualquer sistema
operacional. O Intel XDK suporta a criao de aplicativos mobile para Android, iOS,
Windows, Firefox OS e Tizen, alm de suportar tambm o desenvolvimento Apps
para Chrome OS, Facebook, Amazon e Nook.
Embora seja gratuito, para iniciar o desenvolvimento com o XDK necessrio
que o desenvolvedor se cadastre na base de usurios da Intel, pois ao abrir a IDE
so requisitadas as credenciais do utilizador, que s quando validadas habilitam o
acesso as ferramentas integradas que ele oferece.
O Intel XDK utiliza o Apache Cordova como base de seus projetos, o que o
possibilita a importao de um projeto feito puramente com Apache Cordova,
transformando-o em um projeto do Intel XDK. A IDE oferece duas maneiras de
desenvolver os aplicativos: uma utilizando um editor criado para desenvolvimento
web, o Brackets, que possui uma grande base de usurios, plug-ins e mantido pela
Adobe. A outra maneira utilizando um editor visual de interfaces onde o
desenvolvedor pode facilmente criar um prottipo por meio de clique e arraste de
componentes reutilizveis. Esses componentes so baseados em frameworks
HTML5 especficos para interfaces mobile. Os frameworks suportados so:
App Framework (mantido pela prpria Intel)
Ionic
Twitter Bootstrap 3
JQuery Mobile
37
TopCoat
Ratchet
38
39
Simulador integrado do XDK rodando um aplicativo de exemplo que utiliza a biblioteca Javascript d3js
Por ser uma ferramenta bastante completa, robusta e ter uma grande
empresa com a Intel por trs, o Intel XDK j opo primria de algumas empresas,
startups e desenvolvedores autnomos, mas por ser uma ferramenta relativamente
nova a quantidade de aplicativos populares criados com o XDK bem pequena,
porm existem. A maior parte dos projetos conhecidos desenvolvidos com XDK so
jogos, o que contradiz o fato de no ser possvel desenvolver games com
ferramentas hibridas por causa da performance. Alguns dos aplicativos mais
populares so:
Star Nomad Elite (Game de RPG/RTS)
Nika Digital (Game de estratgia)
Hostel HookApp (App para busca de albergue para estudantes)
40
41
42
43
um
comando
no
console,
especificamente
sencha
sdk
44
45
3.5 NATIVESCRIPT
NativeScript a ferramenta mais nova das opes aqui citadas, sua primeira
verso foi lanada em maio de 2015 e causou bastante alarde na comunidade de
desenvolvedores web por causa da maneira que aborda o desenvolvimento mobile
multi-plataforma. Diferentemente das outras opes de ferramentas abordadas at
agora, que resultavam em interfaces de usurio hibridas por meio de WebViews, o
NativeScript permite a criao de aplicativos mobile multi-plataforma com interfaces
de usurio realmente nativas e 100% de compartilhamento de cdigo-fonte entre
todas as plataformas.
Uma ferramenta que faz algo similar, porm no ser abordada neste trabalho
por no utilizar tecnologias web no seu processo de desenvolvimento o popular
Xamarin, que utiliza o framework .NET da Microsoft e a linguagem C# como base de
seus projetos. Como um evangelista da Telerik (criadora e mantenedora do
NativeScript) explicou, para a concepo do NativeScript focou-se fortemente no
46
esteja
confortvel
hoje
escrevendo
HTML/CSS/Javascript
se
sinta
47
48
iniciar
um
projeto
bem
simples:
comando
tns
create
49
50
ele, porm s uma questo de tempo, j que a abordagem criada pela Telerik
atraiu os olhos de muitos desenvolvedores e empresas, que j adotaram o
NativeScript como ferramenta de desenvolvimento para aplicativos mobile multiplataforma, tornando o futuro do NativeScript bem promissor.
Como todas as opes abordadas aqui, o NativeScript tambm possui suas
fraquezas, por exemplo, por utilizar componentes visuais nativos (e no interfaces
de usurio web como seus concorrentes) ele necessita de compilao sempre que
uma alterao feita no cdigo e o desenvolvedor queira ver o impacto dela no
aplicativo rodando do dispositivo ou simulador. Por ser muito nova, falta recursos de
informao na web sobre possveis problemas que os desenvolvedores possam
encontrar durante o ciclo de desenvolvimento. Sua abordagem de criar uma
estrutura XML para criao de UIs adiciona uma camada de complexidade que exige
que o desenvolvedor aprenda como ela funciona, e esse conhecimento no pode ser
reaproveitado fora do escopo do NativeScript.
O fato dos componentes da interface de usurio de aplicativos desenvolvidos
com NativeScript serem totalmente nativos tambm o torna a opo mais
performtica quando comparada com as outras ferramentas abordadas aqui, logo se
a performance uma preocupao na hora de fazer a escolha entre elas, a resposta
se torna meio bvia. Alm disso o NativeScript open-source, tem uma
documentao simples e slida, prov grande compartilhamento de cdigo entre as
plataformas alvo, o que o torna uma tima opo para desenvolver aplicativos
nativos em mltiplas plataformas em pouco tempo e com baixo custo.
51
52
Exemplo de cdigo declarativo do React Native, repare como o XML se mistura com o Javascript.
(Fonte: https://facebook.github.io/react-native/)
53
54
ser
criado
um
diretrio
com
nome
55
O React Native ainda tem um longo caminho pela frente, e discutvel se est
pronto para ser utilizado em produo. Existe uma longa lista de problemas que
podem desencorajar quem procura algo mais maduro e robusto para desenvolver
seus aplicativos, alm do fato dele s suportar o iOS por enquanto, no
necessariamente diminui os custos de um projeto o bastante para escolhe-lo ao
invs de usar a tecnologia nativa diretamente. Porm o Facebook utiliza-o em vrios
de seus produtos h muito tempo e garantem ter tido muito sucesso desenvolvendo
com React Native at agora. A lista de aplicativos do Facebook que utilizam o React
Native inclui o prprio aplicativo do Facebook para iOS, o aplicativo de Facebook
Groups para iOS e o aplicativo Facebook Ads para iOS.
56
57
4 CONCLUSO
Cada vez mais rpido os dispositivos mobile vem ganhando espao no dia a
dia das pessoas. O que durante algum tempo foi pensado como a segunda tela,
hoje a primeira, ultrapassando o computador pessoal e a televiso. Hoje, 50% da
populao mundial possuem smartphones, e h estimativas quem at 2020 esse
numero subir para 80%, o que torna muito claro que a, j altssima demanda,
continuar crescendo rapidamente.
E junto com a demanda de dispositivos mobile, a demanda de aplicativos para
esses dispositivos tambm continuar em constante crescimento, e para
acompanhar este rpido crescimento necessrio uma abordagem otimizada que
tenha ambos baixo custo e rapidez no desenvolvimento do produto.
sabido que muitas vezes grandes ideias, ideias que vo suprir a alta
demanda de usurio, ideias que vo solucionar problemas do cotidiano das pessoas,
ideias que podem mudar o modo como vivemos, essas ideias podem surgir de
pessoas que no possuem muitos recursos para coloc-las em prtica. E hoje
comum essas pessoas receberem esses valiosos recursos de investidores que
acreditam em sua ideia. E assim nascem as chamadas startups, o tempo todo, em
qualquer lugar do mundo. Porm os recursos disponibilizados para validar aquela
ideia sempre vo ser muito limitados no incio, e necessitam que sejam gastos com
bastante eficincia ou ento esta grande ideia pode nunca se concretizar.
Foi sugerido aqui que o modo mais eficiente de validar uma ideia de um
aplicativo mobile utilizando a abordagem multi-plataforma que reaproveita
conhecimentos, cdigo-fonte e ferramentas da web para ser aplicada. Deste modo,
possvel economizar valiosos recursos durante o desenvolvimento do aplicativo e
ainda chegar uma verso totalmente funcional que valide esta ideia em
pouqussimo tempo, utilizando os conceitos de Lean Startup.
Foram apresentadas vrias ferramentas que implementam esta abordagem,
todas elas com suas diferentes formas de abordar o problema. Foram apontadas
suas vantagens, desvantagens e seus inmeros casos de sucesso. As informaes
58
59
REFERNCIAS
THE LEAN STARTUP. The Lean Startup Methodology. The lean startup,
2011: http://theleanstartup.com/principles
60
MICHAELS. ROSS. COLE. Native mobile apps: The wrong choice for
business?. MRC Productivity, 2013: http://www.mrcproductivity.com/research/whitepapers/NativeAppsWrongChoice.pdf
ADAM, J. Why Titanium App Development is a smart move for startups who
need apps. Tech.co, 2014: http://tech.co/titanum-app-development-get-topnotch-cross-platform-applications-2014-03
61
MCCORKELL, R. React Native The Killer Feature that Nobody Talks About.
Red Badger, 2015: http://red-badger.com/blog/2015/03/04/react-native-thekiller-feature-that-nobody-talks-about/