• Nenhum resultado encontrado

COMPARAÇÃO E AVALIAÇÃO DE FRAMEWORKS PARA DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS HÍBRIDAS

N/A
N/A
Protected

Academic year: 2022

Share "COMPARAÇÃO E AVALIAÇÃO DE FRAMEWORKS PARA DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS HÍBRIDAS"

Copied!
5
0
0

Texto

(1)

COMPARAÇÃO E AVALIAÇÃO DE FRAMEWORKS PARA DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS HÍBRIDAS

Douglas da Cruz Cerqueira

1

; Roberto Almeida Bittencourt

2

1. Bolsista PIBIC/FAPESB, Graduando em Engenharia da Computação, Universidade Estadual de Feira de Santana, email:

douglasdacruzz@gmail.com

2. Orientador, Departamento de Exatas (DEXA), Universidade Estadual de Feira de Santana, email: roberto@ecomp.uefs.br PALAVRAS-CHAVE: engenharia de software, aplicações mobile, multiplataforma

1. INTRODUÇÃO

O mercado de aplicações móveis está cada vez mais movimentado, sendo um dos mercados que mais cresce na atualidade. Quatro gigantes da tecnologia dominam o mercado de aplicações móveis (ver Tabela 1): Apple, Google, Microsoft e Rim. Cada uma delas distribui seu próprio sistema operacional móvel: iOS, Android, Windows Phone e BlackBerry, respectivamente.

Tabela 1. Cenário atual de plataformas móveis.

Distribuidor Sistema Operacional

Linguagem de Programação

Ambiente de Desenvolvimento

Apple iOS Objective-C e Swift Xcode

Google Android Java Eclipse e Android

Studio Microsoft Windows Phone Visual C#/ C++ Visual Studio

RIM BlackBerry Java Eclipse

O desenvolvimento de uma aplicação móvel torna-se complexo quando um mesmo aplicativo necessita ser desenvolvido para os vários SOs citados, já que o mercado não se concentra apenas em uma plataforma. Dehlinger e Dixon, em 2011, listaram como desafio para a criação de aplicações móveis o reuso de software para as plataformas, e a criação de uma interface de usuário universal [1]. Esse desafio existe justamente pela variedade de plataformas no mercado.

Frameworks móveis foram desenvolvidos para facilitar a criação de aplicativos móveis, e tentar uniformizar as experiências de usuário em todas as plataformas. Com estes frameworks, um único código pode ser escrito para diversas plataformas, uma forma de equilibrar e acelerar a maneira como são desenvolvidas aplicações móveis.

Uma variedade de frameworks está disponível na atualidade, e alguns se adaptam melhor a determinada necessidade. Escolher o framework que melhor se encaixe às necessidades de uma equipe de desenvolvimento pode tornar o processo mais ágil e evitar gasto de tempo e esforços desnecessários. Algumas aplicações podem precisar de mais poder de processamento que outras, ou o projeto e a equipe são extensos e necessitam organizar o que está sendo feito. Assim, não há solução trivial para a escolha d melhor ferramenta.

Outros estudos e avaliações de frameworks para aplicações móveis já foram feitas, porém com objetivos diferentes. Alguns estudam as diferentes arquiteturas que um aplicativo gerado por estes frameworks podem ter. O primeiro estuda quatro possíveis arquiteturas para os aplicativos [4]. O segundo, as arquiteturas de cada framework individualmente, embora não deixe claro o comportamento do framework quando utilizado. Por outro, Dalmasso et al.

efetua um estudo mais próximo da aplicação final, gerando aplicações com cada framework

ou combinações entre eles, apesar de um framework não se resumir ao resultado entregue ao

final do desenvolvimento [2].

(2)

Contudo, a avaliação de um framework não se resume a arquiteturas ou aplicativos gerados: um framework deve dar suporte às principais necessidades de um desenvolvedor.

Estas necessidades podem ser avaliadas através de dimensões que englobam todo desenvolvimento de aplicações. Assim, pode-se avaliar quão completo é um framework móvel. Foi o que fizemos neste trabalho, que será melhor explicitado nas seções a seguir.

2. METODOLOGIA

Em resumo, a metodologia de pesquisa utilizada neste trabalho é a de pesquisa tecnológica comparativa, onde se avaliam diferentes artefatos através de comparações em diferentes dimensões. Primeiro, selecionamos as dimensões de interesse. Em seguida determinamos o desempeno de cada framework para cada dimensão. Finalmente, uma comparação é traçada através de uma discussão.

Primeiramente determinamos quais critérios um framework móvel deve dar suporte para desenvolver um aplicativo de forma completa. Os critérios de comparação escolhidos foram:

Plataforma: Sistemas operacionais para os quais o framework é capaz de gerar uma aplicação;

Alvo: Arquitetura do aplicativo gerado: web, híbrido ou nativo;

Linguagem de Desenvolvimento: Linguagens com suporte pelo framework;

Hardware com Suporte: Sensores que a API do framework suporte;

Segurança: Nível de segurança que o aplicativo gerado possui;

SDK: Grupo de ferramentas de desenvolvimento fornecidas;

Padrões de Projeto Utilizados: Práticas que visam facilitar o desenvolvimento e a manutenção de um código disponíveis no framework;

Antes de iniciarmos a análise e classificação dos frameworks, foi necessário estabelecermos uma linha divisória. Há diversos tipos de frameworks e diversas classificações, que nem sempre são compatíveis entre si. Para definir como trabalharíamos, necessitamos decidir como classificar os frameworks, qual classificação seguir. Portanto, definimos a seguinte classificação:

Frameworks web: Ferramentas de desenvolvimento sem suporte a sensores dos dis- positivos mobile;

Frameworks híbridos: Ferramentas que facilitam o desenvolvimento, dão suporte ao hardware do dispositivo e geram aplicações para plataformas variadas;

Frameworks nativos: Ambientes fornecidos pelos desenvolvedores de cada plata- forma, que não permitem o reuso da aplicação em outras plataformas;

Em seguida, passou-se à fase de seleção dos frameworks. Buscamos escolher frameworks com suporte à maioria dos critérios escolhidos. Além disso, aliamos os critérios de comparação a avaliações já existentes, de forma que pudéssemos comparar e reavaliar alguns frameworks. Por fim, decidimos focar o trabalho em frameworks híbridos, por já terem sido previamente estudados, além de serem bastante usados para desenvolvimento. Desta forma, os frameworks escolhidos foram:

MoSync;

(3)

Phonegap;

RhoMobile;

Sencha Touch;

Titanium Mobile;

Após a escolha dos frameworks para avaliação, entramos na fase de análise dos frameworks. Nesta fase, cada ferramenta foi analisada individualmente, com informações obtidas a partir de experiências de uso e informações disponibilizadas pelos proprietários das ferramentas. As ferramentas foram observadas e analisadas desde sua instalação até o uso propriamente dito.

A última etapa para conclusão do estudo foi a comparação dos frameworks. A proposta inicial era que fosse possível indicar ferramentas para finalidades específicas. Para isso, a comparação dos frameworks baseou-se nos critérios citados anteriormente. Em cada critério colocamos os frameworks lado a lado, assim pudemos evidenciar suas diferenças e exaltar os aspectos positivos de cada um deles em cada critério.

Por último, aplicações foram geradas com cada framework. Isso nos permitiu ter uma noção de desempenho e facilidade de uso que cada um deles fornece. Os resultados buscam facilitar a escolha de um framework móvel diante da enorme variedade presentemente disponível.

3. RESULTADOS

Como resultado, obtivemos a classificação dos frameworks para cada dimensão de classificação levantada. A seguir, apresentamos sete avaliações isoladas, uma para cada dimensão de classificação.

Para cada avaliação, conseguimos definir os prós e contras dos frameworks, além de determinar os que se destacam em dada dimensão. Em algumas dessas dimensões, algumas ferramentas possuem as mesmas características. Essa semelhança dificultou o processo final de determinar ferramentas para cada finalidade. Na Tabela 2 apresentamos o resultado de quatro critérios.

Tabela 2. Critérios com resultado comum a todas as ferramentas.

Critério Resultado

Plataforma Todos dão suporte às principais plataformas do mercado Alvo Todos com foco em aplicações híbridas

Linguagem de Desenvolvimento

Apesar de usarem linguagens específicas, todos dão suporte ao desenvolvimento web

Hardware com

Suporte Com exceção do Near Field Communication (NFC), todos os sensores dos dispositivos tem suporte em todos os frameworks

Dado o exposto, entendemos que a seleção de um framework fica nos detalhes e

diferenças que cada um oferece (Tabela 3). As diferenças variam desde o suporte a diversas

linguagens de desenvolvimento até ambientes de trabalho próprios. Ferramentas capazes de

(4)

gerar aplicativos para as diversas plataformas de uma só vez, como RhoHub e Adobe PhoneGap Build, se sobressaem dentre as várias características.

Tabela 3. Singularidades das ferramentas estudadas

Framework Destaque

MoSync Mesmo apresentando uma interface própria para testes da aplicação, que pode auxiliar o desenvolvimento, não é algo de destaque, visto que outros frameworks também a possui.

PhoneGap Adobe PhoneGap Build, citado anteriormente, facilita o processo de gerar as diversas versões de uma mesma aplicação.

Rhodes Mobile Suporte ao padrão Model View Controller (MVC) e RhoHub, que possui a mesma funcionalidade do Adobe PhoneGap Build.

Sencha Touch Apesar de utilizar apenas linguagem web apresenta uma estrutura MVC bem definida, sendo um destaque se comparado ao PhoneGap.

Titanium Mobile Ainda que também apresente uma interface própria para testes da aplicação, outros recursos, como MVC necessitam de recursos adicionais.

4. CONSIDERAÇÕES FINAIS

Este trabalho avaliou ferramentas que buscam facilitar o desenvolvimento de aplicações mobile. Duas avaliações foram feitas, um estudo isolado de cada framework e uma comparação abrangendo ambas ao mesmo tempo.

A partir dos dados extraídos, tanto de documentações fornecidas pelos desenvolvedores destes frameworks, quando pelos testes feitos, notou-se grande semelhança entre eles. Dessa forma, fizemos uma indicação de possíveis usos de cada framework, baseado naquilo que cada um apresenta de diferente.

Em um estudo posterior nessa mesma linha de avaliação, análise de desempenho de cada critério pode ser feito de forma mais detalhada, analisando uso de CPU, memória e consumo de energia. Essa análise irá permitir a avaliação dos frameworks de forma mais próxima ao usuário final.

5. REFERÊNCIAS

[1] DEHLINGER ,Josh e DIXON , Jeremy. “Mobile Application Software Engineering: Challenges and Research Directions.” Departament of Computer and Information Sciences, Towson University (2011).

[2] DALMASSO, Isabelle, DATTA, Soumya Kanti, BONNET Christian e NIKAEIN, Navid. “Survey, Comparison and Evaluation of Cross Platform Mobile Application Development Tools.” Mobile Communication Department, EURECOM (2013).

[3] SINGH, Inderjeet e PALMIERI, Manuel. “Comparison of Cross-Platform Mobile Development Tools.” Mälardalen University, Innovation, Development and Technology (2012).

[4] C.P , Rahul Raj e TOLETY, Seshu Babu. “A Study on Approaches to Build Cross-Platform Mobile

(5)

Applications and Criteria to Select Appropriate Approach.” Siemens Technology and Services Pvt Ltd,

Bangalore, India (2012).

Referências

Documentos relacionados

A hipótese nula sobre o parâmetro 1 ser adquirido de forma competitiva foi rejeitada ao nível de significância de 1%, e para os demais itens de custo, água e energia, a

Neste sentido, mostrar-se-á que, com a exploração dos softwares Geogebra e do CAS Maple, conseguimos descrever, do ponto de vista gráfico-geométrico, o comportamento

Os processos de soldagem mais comumente utilizados para a soldagem subaquática a seco são: GTAW, SMAW e FCAW. Adicionalmente, o controle independente sobre a fonte

O curso de licenciatura em história requer muita leitura específica do aluno a, e por vezes, adquire um caráter fortemente “conteudista”, contudo, a disciplina de Prática de

O capítulo 2 apresenta a estrutura estadual da de- manda de energia (consumo final e dos centros de transformação, e perdas), por fonte e por setor eco- nômico, bem como a evolução

reais, bem como citações em ações rea i s ou pessoais reip ersacutórias, enfim todos o s atos relativos ao imóvel e os direitos sob re ele

Como estratégias pedagógicas complementares serão realizadas atividades de discussão de artigos e estudo de casos clínicos fictícios, por meio de Fóruns e/ou outros

Disponibilidade de nutrientes é uma expressão nem sempre bem utilizada. Freqüentemente ela é associada com os valores fornecidos por método de extração química,