Upload
gustavo-molina
View
72
Download
0
Embed Size (px)
Citation preview
GUSTAVO MOLINA FIGUEIREDO - RA: 1177773
Especialização em Plataforma de Desenvolvimento Web
UTILIZAÇÃO DO FRAMEWORK TITANIUM MOBILE
PARA DESENVOLVIMENTO DE CROSS – PLATFORM
MOBILE APPS
Orientador: Prof. Ms. Marcos Henrique de Paula
Centro Universitário Claretiano
SÃO PAULO
2015
UTILIZAÇÃO DO FRAMEWORK TITANIUM MOBILE PARA
DESENVOLVIMENTO DE CROSS – PLATFORM MOBILE APPS
Resumo: A popularização dos cross-platform mobile apps (também chamados de
aplicativos multiplataforma) nos últimos cinco anos desencadeou uma revolução no
mercado de telefonia móvel. Este artigo teve como objetivo conceituar os cross-
platform mobile apps e apresentar o Titanium Mobile, um framework Java Script
responsável por criar este tipo de aplicativo. No decorrer deste artigo foram expostas as
principais plataformas móveis, as estratégias para o desenvolvimento de aplicações
móveis e o conceito de frameworks, enfatizando o Titanium Mobile. Para demonstrar a
eficiência e os pontos positivos do Framework, um Hello World multiplataforma foi
desenvolvido.
Palavras-chave: Framework; Titanium Mobile; Cross – Platform; Mobile Apps.
INTRODUÇÃO
Atualmente, os celulares são mais uma necessidade do que um luxo visto que
“desde sua criação, os aparelhos celulares passaram por um processo de evolução
constante.” (KESSIN, 2008, p.2). Avanços na última década, nas tecnologias de
comunicação sem fio, e a popularização de dispositivos móveis têm proporcionado
novos cenários. Além de fazer chamadas, há muitas outras características que estão
ganhando popularidade tais como câmera, Bluetooth e GPS. Atualmente há melhor
qualidade dos sinais das operadoras (2G, 3G, 4G) e nota – se a miniaturização dos
aparelhos. Sem dúvida, os aparelhos celulares possuem um papel fundamental na vida
de muitos, pois, tem – se observado o crescimento do uso de dispositivos móveis em
todo o mundo. A Figura 1 mostra a evolução dos smartphones.
Figura 1: Evolução dos Smartphones
Fonte: Adaptado de Prezotto (2014)
Existem diversos fabricantes de aparelhos celulares sendo Apple, Blackberry,
Motorola, LG, Nokia e Samsung os principais. Os fabricantes utilizam um SO (Sistema
Operacional) em seus aparelhos e às vezes os desenvolvem, como é o caso do iOS da
Apple.
Cada SO possui características únicas, como diferentes linguagens de
programação, ferramentas de desenvolvimento, bibliotecas nativas e frameworks. Os
sistemas operacionais, mais utilizados são o Android, iOS, Windows Phone, BlackBerry
OS e Symbian. A arquitetura básica e o suporte a linguagem de programação de cada
sistema operacional é diferente. Os aplicativos desenvolvidos para um determinado
sistema operacional não são compatíveis com outros So's, logo os desenvolvedores tem
que reconstruir a aplicação, o que gera um alto custo de produção e demanda muito
tempo.
“Ferramentas de cross-platform mobile apps estão ganhando popularidade em
todo o mundo devido à sua característica para compilar o código-fonte do aplicativo
para múltiplos sistemas operacionais suportados” (CASTLEDINE et. al 2011, p.100).
Este trabalho tem como objetivo apresentar o Titanium Mobile, um framework
Java Script utilizado para criação de cross-platform mobile apps. Serão expostos os
pontos positivos e negativos deste tipo de aplicativo. Um exemplo será apresentado para
demonstrar a eficiência deste framework “que está entre os mais utilizados pelas
empresas de desenvolvimento de software” (VISION MOBILE, 2012). Durante o
desenvolvimento, o estudo foi dividido nos objetivos específicos abaixo:
Conceituar os cross – platform mobile apps.
Identificar as principais plataformas mobile.
Citar as estratégias de desenvolvimento de aplicações móveis.
Conceituar os frameworks.
Desenvolver um cross – platform mobile app.
Para atingir estes objetivos primeiramente foi feita uma pesquisa bibliográfica
visando explorar pesquisas já existentes sobre o tema. Na sequência foi feito um estudo
sobre as estratégias de desenvolvimento de aplicações móveis utilizando o framework
Titanium. Na etapa final é desenvolvido um Hello World multiplataforma para mostrar a
eficiência do framework.
2. PLATAFORMAS DE DESENVOLVIMENTO PARA
DISPOSITIVOS MÓVEIS
Segundo Prezotto (2014), com a crescente evolução das tecnologias, os
dispositivos inteligentes estão cada vez mais presentes no dia a dia das pessoas.
Diversos tipos de aparelhos foram criados desde o surgimento da telefonia móvel e com
isso verifica – se uma utilização bastante diversificada dos dispositivos móveis. Os
usuários passaram a ler e-mails, realizar transações bancárias, acessar redes sociais e
diversas outras aplicações em seus smartphones e tablets.
As plataformas mobile são um conjunto de tecnologias que envolvem sistemas
operacionais, linguagens de programação e ferramentas de desenvolvimento. Conforme
Café 2012:
Desenvolver aplicações mobile não é tarefa fácil devido às várias
plataformas móveis existentes. Para facilitar o desenvolvimento dessas
aplicações existem frameworks de cross – platform mobile apps, também
conhecidos como frameworks de desenvolvimento multiplataforma, que
permitem que se escreva um único código que funcione em mais de uma
plataforma móvel, o que torna o desenvolvimento mais rápido e fácil.
Cada plataforma possui características próprias que as tornam mais atrativas
para os consumidores e desenvolvedores. Conforme Lecheta 2013:
Os consumidores geralmente procuram aparelhos fáceis de usar, com
diversas funcionalidades e um ótimo custo-benefício. Os desenvolvedores
procuram plataformas com uma grande quantidade de dispositivos ativos no
mercado, boa documentação e suporte técnico, de fácil aprendizado, baixo
custo de desenvolvimento, ambiente de desenvolvimento familiar, entre
outras coisas.
Android, iOS, BlackBerry, Windows Phone e Symbian são as plataformas que
possuem maior parcela no mercado mundial, tanto que são apontadas pelo International
Data Corporation (IDC) como plataformas dominantes. A Figura 2 mostra parcela do
mercado que cada plataforma possui no primeiro semestre de 2015.
Figura 2: Sistemas Operacionais e suas respectivas parcelas no mercado global.
Fonte: Disponível em: <http://www.idc.com/getdoc. jsp?containerId=prUS24108913>. Acesso em 15 set.
2015.
2.1 Estratégias para o desenvolvimento de aplicações móveis
Segundo Prezotto (2014), ao desenvolver um aplicativo móvel, podemos utilizar
uma das três seguintes estratégias:
Desenvolvimento Nativo, o qual utiliza ferramentas e linguagem
fornecidas pela empresa responsável pela plataforma; Desenvolvimento Web,
que utiliza de linguagem HTML5, CSS e Java Script; e Desenvolvimento
Híbrido, o qual se utiliza uma linguagem de script que será interpretada por
uma camada intermediária pré-instalada no sistema ou embutida na própria
aplicação, sendo esta responsável por interagir com o Sistema.
A figura 3 ilustra as vantagens e desvantagens de cada estratégia.
Figura 3: Vantagens e Desvantagens das estratégias de desenvolvimento.
Fonte: Disponível
em:<www.developer.nokia.com/community/wiki/Cross_Platform_Mobile_Architecture>. Acesso em 28
set. 2015.
2.2 Frameworks
No desenvolvimento mobile, torna – se fundamental um bom entendimento dos
princípios dos frameworks, principais componentes das soluções multiplataforma, para
o desenvolvimento de cross-platform mobile apps.
No presente trabalho foi utilizado o framework Titanium Mobile.
“Um framework é um conjunto de classes cooperativas que constroem um
projeto reutilizável para uma determinada categoria de software” (Gamma, Helm,
Johnson, & Vlissides, 2000, p.41.).
De acordo com Fayad e Schmidt (1997), um framework é uma aplicação semi –
completa, reusável, que pode ser especializada para produzir aplicações customizadas.
Um framework orientado a objeto, como é o caso do Titanium Mobile, provê
uma solução para uma família de problemas semelhantes por meio de um conjunto de
classes e interfaces, logo os frameworks devem ser extensíveis, eficientes e de uso
seguro. Ao desenvolver aplicações móveis nativas, a diversidade dos So's e a
necessidade de desenvolvedores com conhecimentos distintos, são algumas das diversas
dificuldades a serem enfrentadas. No contexto de cross-platform mobile apps, os
frameworks nos permitem criar um código único, multiplataforma, que pode ser pode
ser executado em diferentes So's, ou seja, em diferentes plataformas móveis.
De acordo com Prezotto (2014), os principais frameworks para cross – platform
mobile apps são: PhoneGap, Sencha Touch, Mono e Titaniun Mobile. Há mais de cem
frameworks diferentes para o desenvolvimento de cross-platform mobile apps,
entretanto, o gráfico da Figura 4 (resultado do estudo research2guidance realizado em
2013) mostra como a maioria dos frameworks ainda é desconhecida pela comunidade
dos desenvolvedores de aplicativo. As principais características dos frameworks,
levando – se em consideração os mais utilizados, são mostradas na Tabela 1.
Figura 4: Nível de conhecimento dos frameworks multiplataforma.
Fonte: Adaptado do research2guidance (2013)
Tabela 1. Principais características dos Frameworks Multiplataforma Móvel.
Framework SO Móvel Alvo Grátis Linguagem
PhoneGap iOS, Android,
Windows Phone,
BlackBerry, Symbian
SIM HTML 5 , Java
Script
Apache Flex iOS, Android SIM Action Script,
HTML 5, C++
Sencha Touch iOS, Android,
Windows Phone,
BlackBerry
SIM HTML 5 , Java
Script
Titanium Mobile iOS , Android,
BlackBerry
SIM HTML 5 , Java
Script
JQueryMobile iOS, Android,
Windows Phone,
BlackBerry, Symbian
SIM HTML 5 , Java
Script
3. TITANIUM MOBILE
Titanium Mobile (Shackles, 2012) é um framework open source extensível e de
desenvolvimento aberto que permite desenvolver aplicações verdadeiramente nativas
em diferentes dispositivos móveis com uma única base de código.
Atualmente na versão 3.2.2, e utilizando – se de Java Script para
desenvolvimento de cross – platform mobile apps, o Titanium Mobile segue o conceito
Write Once, Run Anywhere (WORA) visto que cerca de 80% do código escrito pode ser
reaproveitado entre as plataformas.
O Titanium Studio é o Ambiente Integrado de Desenvolvimento (em inglês
Integrated Development Environment, ou simplesmente IDE) do Titanium Mobile.
De acordo com Lecheta (2013), o Titanium Mobile possui APIs (Application
Programming Interfaces, ou em português, Interface de Programação de Aplicativos)
independentes para cada plataforma.
“O Titanium Mobile possui sua própria loja virtual, a Appcelerator Marketplace,
nela é possível encontrar diversos módulos que estendem as funcionalidades do
framework” (Café, 2012).
O processo de compilação e conversão de aplicativos (ilustrado na Figura 5)
ocorre da seguinte forma: o aplicativo, desenvolvido utilizando as diversas APIs e
módulos oferecidos pelo Titanium, é construído com HTML5, CSS3 e Java Script e
posteriormente é compilado pelo Java Script runtime. Após a compilação, a conversão é
realizada pelo Titanium Bridge (API em Java Script) que realiza a conversão entre o
Java Script e as linguagens nativas de cada plataforma.
Figura 5: Processo de compilação e conversão dos aplicativos feitos com o Titanium Mobile.
Fonte: Disponível em: < http://www.appcelerator.com/platform/titanium-platform>. Acesso em 30 set.
2015.
A arquitetura do framework Appcelerator Titanium é apresentada na Figura 6.
Figura 6: Ilustração da arquitetura do framework Appcelerator Titanium.
Fonte: Titanium Mobile (2015)
A Tabela 2 mostra as APIs disponíveis no Titanium Mobile para cada SO
suportado:
Tabela 2. Acesso aos recursos nativos do aparelho celular pelo framework Appcelerator Titanium.
Adaptado de (HARTMANN et al. 2011)
4. RESULTADOS E DISCUSSÃO
4.1 Resultados
Para se demonstrar a eficiência do framework Titanium Mobile, para o
desenvolvimento de cross-platform mobile apps, foi desenvolvido um Hello Word
multiplataforma que funciona tanto em iOS quanto em Android. O Hello World teve
como base o código nativo do iOS, desenvolvido em Objective-C e Swift, e o código
nativo do Android. Abaixo tem- se os códigos do Hello World, de autoria própria, de
cada plataforma. As figuras 7 e 8 ilustram os resultados obtidos.
// Objective -C
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Alert"
message:@"Hello World"
delegate: nil
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alert show];
//Swift
let alertView = UIAlertController(title: "Alert", message: "Hello World",
preferredStyle: UIAlertControllerStyle.Alert)
alertView.addAction(UIAlertAction(title: "OK", style UIAlertActionStyle.Default,
handler: nil))
presentViewController(alertView, animated: true, completion: nil)
Figura 7: Print screen do Hello World em iOS.
Fonte: Autoria própria.
//Java/Android
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setMessage("HelloWorld");
alertDialog.setButton("OK", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id) {}});
alertDialog.show();;
Figura 8: Print screen do Hello World em iOS.
Fonte: Autoria própria.
Com a utilização do Titanium Mobile, com apenas o comando alert (''Hello
World''); foi gerado o Hello World multiplataforma. A figura 9 ilustra o resultado.
Figura 9: Print screen do Hello World multiplataforma.
Fonte: Autoria própria.
4.2 Discussão
Devido aos constantes avanços na área da telefonia móvel, está cada vez mais
difícil acompanhar esta evolução. Existem diversas plataformas móveis, cada uma com
suas próprias características, que as tornam únicas. A cada dia cresce o número de
aplicativos nas lojas online.
Com a concorrência cada vez mais acirrada entre as empresas desenvolvedoras
de aplicativos móveis, a utilização do framework Titanium Mobile para o
desenvolvimento de cross-platform mobile apps é uma ótima estratégia, pois, reduz o
tempo gasto (dos desenvolvedores) com o aprendizado de diversas linguagens de
programação e o conhecimento adquirido é facilmente transferido. O Titanium Mobile
apresenta um código base único que reduz duplicação de esforço. A maior vantagem
desse framework é que ele não limita o desenvolvimento a uma única plataforma, ou
seja, os desenvolvedores codificam a aplicação uma única vez e diversas plataformas
diferentes são atingidas, com isso há uma produtividade maior para os desenvolvedores
ou equipes que desenvolvem cross-platform mobile apps.
5. CONCLUSÃO
Atualmente existem ferramentas diversas para o desenvolvimento de cross-
platform mobile apps e com isso há uma clara preocupação das empresas com redução
da complexidade, custo e tempo.
O uso do framework Titanium Mobile permite a redução de custo, tempo e
complexidade, entretanto, com limitações no tempo de resposta do aplicativo e total
acesso aos recursos do aparelho. Embora ainda necessite de algumas melhorias, o
Titanium Mobile é uma das ferramentas mais utilizadas para o desenvolvimento de
aplicativos multiplataforma, pois, é flexível e é cada vez mais aperfeiçoado e difundido.
O mercado dos cross-platform mobile apps cresceu significativamente nos
últimos cinco anos e a tendência é continuar evoluindo até alcançar a qualidade dos
aplicativos nativos visto que aplicativos multiplataforma oferecem ganhos e são
desenvolvidos uma única vez, rodando em diferentes plataformas.
6. REFERÊNCIAS
APPCELERATOR. Titanium Mobile Aplication Development | Appcelerator Inc.
Appcelerator.com, 30 set 2015. Disponível em:
<htt://www.appcelerator.com/platform/titanium-platform/>. Acesso em: 30 set. 2015
CAFÉ, Adriel Almeida. Desenvolvimento de Cross-Platform Mobile Apps
Utilizando o Titanium Mobile. (2012). Monografia (Graduação) - Curso de Sistemas
de Informação, Faculdade Zacarias de Góes (fazag), Valença – BA, 2012.
CASTLEDINE, E.; EFTOS, M.; WHEELER, M. Build Mobile Websites and Apps
for Smart Devices. Collingwood: Site Point, 2011.
FAYAD, E. M. e SCHMIDT, D. C. (1997) “Object-Oriented Application
Frameworks”, In: Communications of the ACM, Editora Guest, p. 32-38.
GAMMA, E. et al. Padrão de Projeto – Soluções Reutilizáveis de Software
Orientado a Objetos. Tradução de Luiz A. Meirelles Salgado. Porto Alegre: Bookman,
2000. p. 41-43.
HARTMANN, G., et al. Cross-platform mobile development. The Paddocks: Tech.
Rep, 2011.
IDC. Android and iOS Combine for 92.3% of All Smartphone Operating System
Shipments in the First Quarter While Windows Phone Leapfrogs BlackBerry,
According to IDC, 16 Maio 2013. Disponível em: <http://www.idc.com/getdoc.
jsp?containerId=prUS24108913>. Acesso em: 15 set. 2015.
KESSIN, Z. Programming HTML5 Applications. Sebastopol: O’Reilly, 2008.
LECHETA, R. R. Aprenda a Criar Aplicações para Dispositivos Móveis com
Android SDK, 3ª edição, 2013.
NOKIA. Cross Platform Mobile Architecture. Nokia Developers, 2013. Disponível em:
<http://developer.nokia.com/community/wiki/Cross_Platform_Mobile_Architecture>.
Acesso em: 28 set 2015.
PREZOTTO, E. D. Estudo de Frameworks Multiplataforma para Desenvolvimento
de Aplicações Mobile Híbridas. (2014). Trabalho de Conclusão de Curso,
Universidade Federal de Santa Maria (ufsm), Santa Maria – RS, 2014.
© RESEARCH2GUIDANCE. Global Cross Platform Tool Benchmarking 2013.©
research2guidance. Berlin. 2013.
SHACKLES, G. Mobile Development with C#. Sebastopol: O’Reilly, 2012.
SOUZA, Édipo Da Silva. Uma Análise Comparativa de Ferramentas de
Desenvolvimento Multiplataforma para Dispositivos Móveis. (2014). Monografia
(Graduação) – Curso de Sistemas e Mídias Digitais, Universidade Federal do Ceará
(ufc), Fortaleza – CE, 2014.
TITANIUM MOBILE. Página Oficial do Framework, 2015. Disponível em:
<http://www.appcelerator.com/titanium/>. Acesso em 25 out 2015.
VISION MOBILE. Cross-Platform Developer Tools 2012. London, 2012.