15
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

Artigo

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.