• Nenhum resultado encontrado

Cross-platform Mobile Development Approaches: A Systematic Review

N/A
N/A
Protected

Academic year: 2022

Share "Cross-platform Mobile Development Approaches: A Systematic Review"

Copied!
7
0
0

Texto

(1)

Abstract— Nowadays, there are at least four important mobile platforms (iPhone, Android, BlackBerry and Windows Phone).

The main challenge for mobile application developers is to provide their solution across all these platforms. Cross-platform development approaches emerged to address this challenge by allowing developers to implement their applications in one step for a range of platforms, avoiding repetition and increasing productivity. We will present a systematic review where we define and explain the different approaches used in cross- platform development in order to achieve a comparison between these approaches allowing us to identify the strong points, and weaknesses of each approach.

Keywords— Mobile Applications, Cross-platform Approaches, Multiplatform Development, Hybrid, Interpretation, Cross- compilation.

I.INTRODUÇÃO

OJE existem pelo menos quatro importantes plataformas móveis (iPhone, Android, BlackBerry e Windows Phone), resultantes de uma intensa competição entre as empresas que dominam esse mercado (Apple, Google, BlackBerry Inc. e Microsoft). Embora essa competição seja responsável pelo rápido crescimento do mercado de dispositivos móveis, ela é responsável também pela fragmentação dos sistemas operacionais móveis.

Cada uma dessas plataformas tem sua própria infraestrutura para o desenvolvimento de aplicações nativas. Aplicações para Android são desenvolvidas em Java e, comumente, os desenvolvedores utilizam o Eclipse como IDE (Integrated Development Environment). Já o desenvolvimento para iOS requer a utilização do Xcode como IDE e o uso da linguagem Objective-C. Para Microsoft Windows Phone, os desenvolvedores utilizam o Visual Studio e podem escolher entre as linguagens C# e C++. Para o BlackBerry OS, sistema operacional mais antigo da BlackBerry, os desenvolvedores programam em Java com Eclipse, mas para o sistema operacional mais recente(BlackBerry 10), os desenvolvedores têm a opção de programar em C++ ou Qt/QML utilizando o Qt Creator como IDE.

Um problema para desenvolvedores é prover versões de suas aplicações para todas essas plataformas. A abordagem de desenvolvimento nativo não é muito atraente devido ao custo, à quantidade de recursos e ao tempo associados com as atividades de desenvolvimento para cada plataforma. Indo por esse caminho, o desenvolvedor precisa criar e manter versões distintas do mesmo produto para cada plataforma.

T. F. Bernardes, Instituto de Pesquisas Tecnológicas do Estado de São Paulo (IPT), São Paulo, São Paulo, Brasil, [email protected]

M. Y. Miyake, Instituto de Pesquisas Tecnológicas do Estado de São Paulo (IPT), São Paulo, São Paulo, Brasil, [email protected]

Uma solução ideal para esse problema é criar e manter uma única aplicação para todas as plataformas. As abordagens de desenvolvimento multiplataforma surgiram para tratar essa questão, permitindo aos desenvolvedores implementarem suas aplicações em um passo, para um leque de plataformas, evitando esforço dobrado e aumentando a produtividade.

Está disponível, atualmente, uma série de ferramentas de desenvolvimento multiplataforma para dispositivos móveis.

Cada ferramenta segue uma abordagem multiplataforma específica. Assim, os desenvolvedores, que se lançam no desenvolvimento multiplataforma de aplicações para dispositivos móveis, logo se deparam com questões sobre as diferenças entres as diversas abordagens e ferramentas multiplataforma.

O objetivo principal deste artigo é responder tais questões através de uma revisão sistemática da literatura. Para conduzir a revisão sistemática, foi seguido o processo proposto por Kitchenham em [1]. Ela foi conduzida entre janeiro e março de 2015.

De forma resumida, o processo é composto por três etapas principais: (i) planejamento; (ii) condução; e (iii) relatório. As fases serão explicadas com mais detalhes durante a apresentação da revisão sistemática.

Este artigo é organizado da seguinte forma. Na Seção II, nós descrevemos o planejamento da revisão sistemática. Na Seção III, nós apresentamos o resultado da condução da revisão sistemática. Na Seção IV, nós sintetizamos o relatório da revisão sistemática contendo as respostas às questões de pesquisa. Na Seção V, nós apresentamos uma discussão sobre as respostas às questões de pesquisa. Na Seção VI, resumimos nossa contribuição e falamos sobre a perspectiva de trabalhos futuros.

II. PLANEJAMENTO DA REVISÃO SISTEMÁTICA Nesta etapa é estabelecido o protocolo de revisão sistemática. Para isto são definidos: objetivos da pesquisa;

questões de pesquisa; critérios de seleção das fontes de pesquisa; critérios de inclusão e exclusão; e procedimentos para a seleção dos estudos.

A. Objetivos da Pesquisa

Esta revisão sistemática pretende identificar estudos que abordam técnicas de desenvolvimento multiplataforma para aplicações móveis e obter um resumo das tecnologias e metodologias usadas nesse tipo de desenvolvimento.

B. Questões de Pesquisa

As questões de pesquisa têm o objetivo de encontrar estudos primários para entender e resumir evidências do uso de abordagens de desenvolvimento multiplataforma para aplicações móveis. Para isso, as seguintes questões de pesquisa foram estabelecidas:

T. F. Bernardes and M. Y. Miyake

Cross-platform Mobile Development Approaches: A Systematic Review

H

(2)

QP1: Qual a importância e ganho na adoção de uma abordagem multiplataforma em comparação ao desenvolvimento de aplicações nativas?

QP2: Quais as principais abordagens de desenvolvimento multiplataforma para aplicações móveis encontradas na literatura?

QP3: Quais são as vantagens e desvantagens das diversas abordagens multiplataforma?

QP4: Quais são as ferramentas de desenvolvimento multiplataforma e qual abordagem elas adotam?

Em adição às questões de pesquisa, o processo proposto em [1] sugere também a definição do PICO (Population, Intervention, Comparison and Outcomes). No qual a População identifica o grupo observado pela intervenção; a Intervenção identifica o que será observado no contexto da revisão sistemática; a Comparação define o que é comparado no contexto da revisão sistemática; e os Outcomes são os resultados que se deseja alcançar com a revisão sistemática.

O PICO da nossa revisão sistemática é especificado abaixo:

População: Pesquisadores e desenvolvedores de aplicações móveis interessados no desenvolvimento multiplataforma;

Intervenção: A intervenção desta revisão sistemática é representada pelo desenvolvimento de aplicações móveis utilizando-se abordagens de desenvolvimento multiplataforma;

Comparação: As abordagens de desenvolvimento multiplataforma são estudadas em comparação com a abordagem mais comum de desenvolvimento de aplicações móveis que é a abordagem de desenvolvimento de aplicações nativas.

Resultados: Esta revisão sistemática visa obter uma descrição detalhada das abordagens de desenvolvimento multiplataforma para aplicações móveis, incluindo: ambientes de desenvolvimento e ferramentas que atendem cada abordagem; vantagens e desvantagens de cada abordagem; e as vantagens de abordagens multiplataforma em comparação com a abordagem de desenvolvimento de aplicações nativas.

C. Critérios de Seleção das Fontes de Pesquisa

Visando estabelecer a estratégia de busca, considerando as questões de pesquisa, identificamos como palavras-chave principais o termo “Cross-platform” para pesquisas na língua inglesa e o termo “Multiplataforma” para pesquisas na língua portuguesa. Abaixo são listados o termo principal e os termos associados nas duas línguas consideradas.

Para pesquisas na língua inglesa:

Cross-platform {development, approach, tools, framework, mobile applications, web applications, interpreted applications, cross compiled applications, native applications, multi-platform}

Para pesquisas na língua portuguesa:

• Multiplataforma {desenvolvimento, abordagem, ferramentas, framework, aplicações móveis, aplicações web, aplicações interpretadas, aplicações compiladas, aplicações nativas}

Além disso, nós definimos como fontes de pesquisa as seguintes bibliotecas: IEEE Xplore; ACM Digital Library;

Google Scholar; ScienceDirect; e SpringerLink.

D. Definição dos Estudos: Critérios de Inclusão e Exclusão

Em uma revisão sistemática, a definição dos Critérios de Inclusão (CI) e Critérios de Exclusão (CE) é importante para incluir estudos primários que são relevantes para responder as questões de pesquisa e excluir aqueles que não as respondem.

Assim, os estudos primários incluídos na revisão sistemática deverão cumprir os seguintes critérios de inclusão:

CI1: O estudo primário deve propor ou relatar pelo menos uma abordagem de desenvolvimento multiplataforma para aplicações móveis;

CI2: O estudo primário deve estar em uma das línguas definidas; e

CI3: O estudo primário deve estar disponível integralmente.

Critérios de exclusão:

CE1: O estudo primário apresenta contribuições em outras áreas que não a de desenvolvimento de aplicações móveis;

CE2: O estudo primário é uma versão anterior de um estudo mais completo sobre a mesma pesquisa;

CE3: O estudo primário é uma tabela de conteúdo, uma apresentação de um curso ou um resumo de um evento (como conferências ou workshops);

CE4: A data de publicação do estudo primário é anterior a 2010.

E. Procedimentos Para Seleção dos Estudos Passos para a seleção de estudos primários:

1. Busca por palavras-chave: Customizar e aplicar as sentenças de pesquisa em cada fonte de pesquisa listada;

2. Primeira seleção: Para cada estudo primário obtido como resultado das buscas, o título e o resumo devem ser lidos e os critérios de inclusão e exclusão aplicados.

Quando houver dúvida na seleção ou não de um estudo, a introdução e a conclusão também deverão ser lidas;

3. Segunda seleção: Os estudos primários selecionados no passo 2 deverão ser lidos por completo e os critérios de inclusão e exclusão novamente aplicados;

4. Seleção de trabalhos relacionados: Os trabalhos relacionados, citados pelos estudos que passarem pela segunda seleção, também deverão ser avaliados, conforme descrito nos passos 2 e 3. Esta seleção adicional é considerada como grande fonte de evidência.

III. CONDUÇÃO

Durante a condução da revisão sistemática, é feita a identificação, avaliação e seleção de estudos primários de acordo com critérios de inclusão e exclusão previamente estabelecidos.

Na condução desta revisão sistemática, como resultado da busca por palavras-chave, foram identificados 82 estudos primários. Após a aplicação da primeira e segunda seleção, e da seleção de trabalhos relacionados, 10 estudos primários

(3)

foram considerados relevantes para responder as questões de pesquisa. A Tabela I apresenta os estudos selecionados.

TABELA I.

ESTUDOS PRIMÁRIOS SELECIONADOS

Título Autores

E1 Cross-platform Mobile

Development Approaches [2] Charkaoui, Adraoui e Benlahmar (2014) E2 A Comparative Analysis of

Cross-platform Development Approaches for Mobile Applications [3]

Xanthopoulos e Xinogalos (2013)

E3 Evaluating Cross-Platform Development Approaches for Mobile Applications [4]

Heitkotter, Hanschke e Majchrzak (2013)

E4 Survey, Comparison and Evaluation of Cross Platform Mobile Application

Development Tools [5]

Dalmasso, Datta, et al.

(2013)

E5 Yet Another DSL for Cross- platforms Mobile Development [6]

Goaer e Waltham (2013)

E6 A Study on Approaches to Build Cross-platform Mobile Applications and Criteria to Select Appropriate Approach [7]

Raj e Tolety (2012)

E7 Comparison of Cross-platform Mobile Development Tools [8]

Palmieri, Singh e Cicchetti (2012) E8 Cross Platform Mobile

Applications Development [9]

Redda (2012)

E9 Potential Advantages and Disadvantages of Multiplatform Development Frameworks – A Vision on Mobile Environments [10]

Corral, Janes e Remencius (2012)

E10 Survey on Cross-Platforms and Languages for Mobile Apps [11]

Ribeiro e Da Silva (2012)

IV. RELATÓRIO

O objetivo do relatório é apresentar os dados extraídos dos estudos selecionados de forma a responder as questões de pesquisa. A seguir são apresentadas as respostas para cada questão, de acordo com os autores apresentados na Tabela I.

A. Questão 1: Abordagem Multiplataforma Versus Abordagem de Desenvolvimento Nativo

O objetivo da questão QP1 é identificar as principais vantagens e desvantagens na adoção de uma abordagem multiplataforma, em comparação com a abordagem de desenvolvimento de aplicações nativas para cada plataforma.

Vantagens das abordagens de desenvolvimento multiplataforma:

• Redução da necessidade de conhecimento específico [E7];

• O aprendizado de linguagens como HTML e JavaScript, utilizadas em abordagens multiplataforma, é menos desafiador do que o aprendizado de linguagens como Objective C e Java, utilizadas no desenvolvimento nativo [E8];

• Exige um tipo de conhecimento já dominado por muitos programadores [E9];

• Redução do número de linhas de código, pois o código é escrito uma única vez para várias plataformas [E7];

• Redução do tempo de desenvolvimento e custo de manutenção [E7] [E8];

• Redução da necessidade de conhecimento de APIs, pois com o uso de ferramentas de desenvolvimento multiplataforma não há a necessidade de conhecer as APIs de cada plataforma, mas somente as APIs fornecidas pela ferramenta [E7];

• Maior facilidade de desenvolvimento se comparado ao desenvolvimento nativo para cada plataforma [E7]; e

• Aumento do retorno sobre investimento (ROI), pois se atinge uma fatia maior do mercado com um investimento menor [E7].

Desvantagens das abordagens de desenvolvimento multiplataforma:

• Não provê acesso (ou provê acesso limitado) a alguns recursos do dispositivo [E9];

• Não proporciona aos usuários a mesma experiência de aplicações nativas [E9];

• Aplicações desenvolvidas com o uso de abordagens multiplataforma podem apresentar problemas de desempenho e outras limitações se comparadas a aplicações nativas [E9];

• Ferramentas de desenvolvimento multiplataforma ainda requerem melhorias, como prover acesso completo aos recursos do dispositivo da mesma forma que ferramentas de desenvolvimento nativo [E9]; e

• Do ponto de vista dos usuários, aplicações nativas proporcionam uma experiência mais rica [E2] [E4]

[E9].

B. Questão 2: Abordagens de Desenvolvimento Multiplataforma

A Tabela II apresenta as abordagens de desenvolvimento multiplataforma que foram identificadas na revisão sistemática e uma definição sucinta para cada uma delas.

TABELA II.

ABORDAGENS DE DESENVOLVIMENTO MULTIPLATAFORMA Abordagem Definição

Web (Estudos: E1, E2, E3, E4, E6 e E8.)

Uma definição para essa abordagem, apresentada por Heitkötter, Hanschke e Majchrzak (2013), diz que esta é uma abordagem na qual as aplicações são implementadas com HTML, CSS e JavaScript, e utilizam o browser como ambiente runtime.

Assim, a aplicação web pode ser acessada de forma similar, com browsers, em todas as plataformas.

Hybrid (Estudos: E2,

Essa abordagem combina a tecnologia web com código nativo. O código fonte de aplicações

(4)

E3, E4 e E6) híbridas utiliza tecnologia similar às aplicações web, mas adicionalmente, tem acesso, com o uso de APIs, as características específicas de uma plataforma como geolocalizador, câmera, etc...

As linguagens de programação mais comuns são HTML, CSS e JavaScript.

Web-to-native wrapper (Estudos: E1 e E10)

Nessa abordagem uma aplicação nativa é criada com linguagens de programação web como HTML, CSS e JavaScript. O código fonte é empacotado com bibliotecas que permitem o acesso às características específicas de uma plataforma como notificações, acelerômetro, bussola, etc...

Runtime ou Scripted (Estudos: E1 e E10)

O desenvolvedor escreve a aplicação em linguagens como JavaScript, Lua e Ruby. A ferramenta de desenvolvimento multiplataforma empacota o código fonte, sem modificação, com um interpretador específico para a plataforma alvo. Portanto para distribuir a aplicação para várias plataformas é necessário um interpretador específico para cada plataforma.

Source Code Translators ou

Byte Code Approach (Estudo: E1)

Consiste na tradução do código fonte para um byte code intermediário, para uma linguagem nativa (C++, Objective C,...) ou diretamente para assembler (linguagem de máquina).

Interpreted (Estudos: E2 e E6)

Nessa abordagem código nativo é automaticamente gerado para implementar a interface do usuário. O usuário final interage com componentes de interface nativos da plataforma. A lógica da aplicação é implementada independentemente com o uso de linguagens como Java, Ruby, XML etc.

A aplicação acompanha um interpretador o qual executa o código em tempo de execução.

Generated Apps (Estudo: E2)

Aplicações geradas são compiladas como aplicações nativas e uma versão específica da aplicação é criada para cada plataforma alvo.

Self- contained runtime environments (Estudo: E3)

Essa abordagem disponibiliza um ambiente de execução (runtime environment) separado para cada plataforma. Aplicações são empacotadas e distribuídas junto com o ambiente de execução próprio para a plataforma alvo.

Generator (Estudo: E4)

São ferramentas nas quais o desenvolvedor escreve a aplicação em uma linguagem específica (JavaScript ou PHP) e a ferramenta traduz para uma aplicação nativa para diferentes plataformas. A aplicação pode incluir um ambiente de execução ou uma máquina virtual.

Interpretation (Estudo: E5)

Um interpretador é responsável pela execução da aplicação em tempo de execução. Deve existir um interpretador específico para cada plataforma. Esse pode ser instalado como uma máquina virtual ou ser empacotado junto com a aplicação.

Cross- O compilador realiza a tradução da linguagem de programação para várias linguagens alvo.

compilation (Estudo: E5 e E6)

Para cada nova plataforma, a qual se deseja atender, uma nova regra de transformação deve ser adicionada ao compilador.

Abstraction Based (Estudo: E8)

As aplicações são escritas comumente em HTML, CSS e JavaScript com uma arquitetura que abstrai a variação entre plataformas em uma forma uniforme de acesso aos recursos do dispositivo. O código fonte é customizado para rodar em um WebView de uma plataforma específica ou em um interpretador JavaScript.

Native Compiling Cross Platform (Estudo: E8)

A aplicação é escrita em uma linguagem de programação comum e o código fonte é compilado para o código de máquina de várias plataformas.

App Factory (Estudo: E10)

Consiste em ferramentas visuais que permitem ao usuário desenvolver a aplicação sem codificação. Normalmente, são baseadas em templates e fornecem recursos “arrastar e soltar”

para gerar o código.

C. Questão 3: Vantagens e Desvantagens de Cada Abordagem

O objetivo desta questão é identificar as vantagens e desvantagens das diversas abordagens identificadas na questão anterior. As Tabelas de III a X apresentam os pontos identificados nos dez estudos primários selecionados.

TABELA III.

VANTAGENS DA ABORDAGEM WEB Estudo Vantagens da Abordagem Web

E2, E3 e E6

Distribuição simples. Não requer instalação e atualizações de aplicações no dispositivo;

E2 As linguagens de programação são largamente conhecidas;

E3 e

E6 Rodam em qualquer plataforma; e

E3 Contam com um leque grande de ferramentas de desenvolvimento.

TABELA IV.

DESVANTAGENS DA ABORDAGEM WEB Estudo Desvantagens da Abordagem Web E1 e

E2 As aplicações dependem de conexão com a internet;

E1 Não utilizam toda a capacidade gráfica do dispositivo;

E3 Não apresentam o Look and Feel nativo;

E1, E3 e E6

Não podem ser disponibilizadas em lojas de aplicações.

Como usuários comumente pesquisam por aplicações em lojas de aplicações, uma aplicação que não é disponibilizada nas lojas de aplicações, além de não poder ser comercializada por esse meio, pode ter um impacto negativo em sua popularidade;

E1, E2, E3 e E6

Não permitem o acesso a APIs nativas; e

(5)

E2 e

E6 O tempo de carregamento de páginas web é maior.

Podem apresentar desempenho inferior devido à conexão lenta.

TABELA V.

VANTAGENS DA ABORDAGEM HYBRID OU WEB-TO-NATIVE WRAPPER

Estudo Vantagens da Abordagem Hybrid ou Web-to-Native Wrapper

E1 Funcionam sem conexão com a internet;

E1 e

E6 Podem ser distribuídas através de lojas de aplicações;

E2, E3 e E6

Permitem acesso às APIs nativas;

E2 Cobrem um leque grande de plataformas; e

E2 As linguagens de programação são largamente conhecidas.

TABELA VI.

DESVANTAGENS DA ABORDAGEM HYBRID OU WEB-TO-NATIVE WRAPPER

Estudo Desvantagens da Abordagem Hybrid ou Web-to- Native Wrapper

E2, E3

e E6 Aparência de aplicação web. Exigem esforço extra de desenvolvimento para alcançar o Look and Feel nativo;

e

E6 O desempenho de aplicações híbridas é inferior ao desempenho de aplicações nativas, pois sua execução acontece em um browser engine.

TABELA VII.

VANTAGENS DA ABORDAGEM RUNTIME OU INTERPRETED Estudo Vantagens da Abordagem Runtime (Interpreted, Self-

contained runtime environments, Generator ou Interpretation)

E2 e E6

Permitem acesso às APIs nativas;

E2 e E6

Podem ser distribuídas através de lojas de aplicações; e

E6 Apresentam o Look and Feel de aplicações nativas.

TABELA VIII.

DESVANTAGENS DA ABORDAGEM RUNTIME OU INTERPRETED Estudo Desvantagens da Abordagem Runtime (Interpreted,

Self-contained runtime environments, Generator ou Interpretation)

E3 Requerem conhecimento mais específico no desenvolvimento; e

E6 Perdem um pouco em desempenho devido ao tempo de interpretação do código.

TABELA IX.

VANTAGENS DA ABORDAGEM SOURCE CODE TRANSLATORS Estudo Vantagens da Abordagem Source Code Translators

(Generated Apps, Cross compilation ou Native

compiling cross platform)

E2 Podem ser distribuídas através de lojas de aplicações;

E4 A interface com o usuário é a que mais se aproxima de aplicações nativas; e

E6 O desempenho é o mesmo de uma aplicação nativa.

TABELA X.

DESVANTAGENS DA ABORDAGEM SOURCE CODE TRANSLATORS Estudo Desvantagens da Abordagem Source Code

Translators (Generated Apps, Cross compilation ou Native compiling cross platform)

E6 A interface com o usuário não pode ser reutilizada, ou seja, deve-se desenvolver código específico de interface para cada plataforma.

D. Questão 4: Ferramentas de Desenvolvimento Multiplataforma

A quarta questão de pesquisa visa identificar ferramentas de desenvolvimento multiplataforma e a respectiva abordagem de desenvolvimento. A Tabela XI apresenta as ferramentas citadas pelos estudos primários e a classificação que cada estudo atribui às ferramentas.

TABELA XI.

FERRAMENTAS DE DESENVOLVIMENTO MULTIPLATAFORMA Ferramenta Abordagem

Adobe Air/Flex Runtime [E1]

Abstraction Based [E8]

Applause Generated Apps [E2]

Cross-compilation [E5] [E6]

AppMobi Runtime [E1]

Hybrid [E4]

Canappi Cross-compilation [E5]

Codename One Cross-compilation/ Interpretation [E5]

Corona Runtime [E1]

Abstraction Based [E8]

DragonRad App Factory [E10]

Eqela Source Code Translator [E1]

IBM Worklight Hybrid [E2]

Abstraction Based [E8]

iPhonical Generated Apps [E2]

JMango Interpreted [E6]

JQTouch Web [E4]

JQurey Mobile Web [E4]

LiveCode Interpretation [E5]

Marmalade Cross-compilation/ Interpretation [E5]

Native Compiling [E8]

Mono Cross-compilation [E6]

MoSync Source Code Translator [E1]

Cross-compilation [E5]

Abstraction Based/ Native Compiling [E8]

Neomades Cross-compilation [E5]

Phonegap Web-to-Native Wrapper [E1] [E10]

Hybrid [E2] [E3] [E6]

Abstraction Based [E8]

Rhomobile Runtime [E1] [E10]

Generator [E4]

Interpretation [E5]

Abstraction Based [E8]

Sencha Touch Web-to-Native Wrapper [E1]

Web [E4]

(6)

Tabris Interpretation [E5]

Titanium Runtime [E1] [E10]

Interpreted [E2] [E6]

Self-contained runtime environment [E3]

Generator [E4]

Interpretation [E5]

Abstraction Based [E8]

Xamarin Native Compiling [E8]

XMLVM Source Code Translator [E1]

Cross-compilation [E5]

V. DISCUSSÃO DOS RESULTADOS A. Questão 1: Abordagem Multiplataforma Versus Abordagem de Desenvolvimento Nativo

De acordo com os estudos selecionados, abordagens multiplataforma apresentam várias vantagens em relação à abordagem de desenvolvimento nativo. A maioria delas relacionadas à redução de recursos de desenvolvimento, ganho de produtividade e aumento do ROI. Porém, aplicações multiplataforma possuem certas limitações quando comparadas a aplicações nativas. Características não funcionais da aplicação como desempenho e usabilidade são melhores desenvolvidas utilizando-se a abordagem de desenvolvimento nativo.

B. Questão 2: Abordagens de Desenvolvimento Multiplataforma

Avaliando a Tabela II verificamos que não existe uma classificação padrão para as abordagens de desenvolvimento multiplataforma, pois a classificação varia um pouco de autor para autor. Mas em vários casos, os autores dão nomes diferentes para a mesma abordagem.

Verificamos que é consenso entre todos os estudos que a abordagem Web é uma abordagem multiplataforma. A definição dessa abordagem é clara e comum entre todos os autores.

A abordagem hybrid citada pelos estudos E2, E3, E4 e E6 é também conhecida por web-to-native wrapper e citada com esse nome nos estudos E1 e E10.

As abordagens denominadas runtime, interpreted, self- contained runtime environments, generator e interpretation, citadas respectivamente pelos estudos E1, E2, E3, E4 e E5, podem ser consideradas uma mesma abordagem. Todas são definidas como sendo uma abordagem em que se fornece um componente junto com aplicação, e tal componente é responsável por interpretar o código fonte em tempo de execução. Esse componente pode ser um interpretador, uma máquina virtual ou um CLR.

As abordagens source code translators, generated apps, cross compilation e native compiling cross platform, são apresentadas respectivamente pelos estudos E1, E2, E5 e E8.

Essas quatro abordagens são descritas com uma característica comum, pela qual o código fonte é traduzido ou compilado para uma linguagem intermediária ou para uma linguagem de máquina.

O estudo E8 não faz distinção entre as abordagens hybrid e interpreted. Ele classifica ferramentas que são separadas por outros autores entre hybrid e interpreted em abstraction based. Assim, a abordagem abstraction based introduzida pelo estudo E8 possui uma definição mais genérica.

E, por fim, o estudo E10 apresenta uma abordagem chamada app factory que é uma abordagem de desenvolvimento de mais alto nível com foco em usuários que não possuem conhecimento muito técnico.

C. Questão 3: Vantagens e Desvantagens de Cada Abordagem

Apesar de não existir uma classificação padrão para as abordagens de desenvolvimento multiplataforma, é possível agrupá-las em quatro abordagens principais: Abordagem Web, Abordagem Híbrida, Abordagem Interpretada e Abordagem de Compilação Multiplataforma.

A abordagem web é considerada uma abordagem de fácil desenvolvimento, porém esse tipo de aplicação é o que possui maiores limitações.

A abordagem híbrida insere a aplicação web em um invólucro de código nativo. Assim, essa abordagem consegue oferecer algumas das vantagens da abordagem web e ao mesmo tempo resolver algumas de suas limitações. O invólucro nativo expõe funções nativas do dispositivo à camada JavaScript, por meio de um conjunto de plug-ins escritos em linguagem nativa de uma plataforma particular.

Esses plug-ins expõem funções nativas como, por exemplo:

acesso ao calendário do dispositivo, agenda telefônica ou recursos de hardware como a câmera. Tais funções seriam inacessíveis utilizando-se a abordagem web pura.

Porém, a abordagem híbrida apresenta desvantagens por manter a aparência de aplicações web e por não apresentar um bom desempenho se comparado ao desempenho de aplicações nativas.

A abordagem de aplicações interpretadas leva junto o interpretador que faz a ponte entre o código fonte e as chamadas para funções nativas do sistema operacional. Porém, é necessário disponibilizar um interpretador para cada plataforma móvel. Esse pode ser instalado como uma máquina virtual, ou ser empacotado com a aplicação que será distribuída. Uma desvantagem a se considerar nesse tipo de abordagem é que ela requer um tipo de conhecimento mais específico.

A abordagem de compilação multiplataforma seria a que mais se aproxima de aplicações nativas. Porém, de acordo com Heitkotter, Hanschke e Majchrzak em [4] (Estudo E3) até aquele momento não havia nenhuma ferramenta que utilizasse a abordagem de cross compilation, considerada pronta para produção.

D. Questão 4: Ferramentas de Desenvolvimento Multiplataforma

Foram identificadas 23 ferramentas de desenvolvimento multiplataforma e suas respectivas abordagens, de acordo com os estudos selecionados.

Analisando a classificação das ferramentas multiplataforma quanto à abordagem de desenvolvimento, nota-se que em alguns casos há um conflito entre a classificação de um autor para outro. Por exemplo, a ferramenta AppMobi é classificada por Charkaoui, Adraoui e Benlahmar em [2] (Estudo E1) como abordagem runtime, enquanto Dalmasso, Datta, Bonnet e Nikaein em [5] (Estudo E4) classificam essa mesma ferramenta como sendo de abordagem hybrid. Porém, as abordagens hybrid e runtime são abordagens diferentes. Redda

(7)

em [9] (Estudo E8) classifica as ferramentas Phonegap e Rhomobile em uma mesma abordagem, uma abordagem chamada abstraction based, porém, outros autores dizem que essas duas ferramentas possuem abordagens distintas.

VI. CONCLUSÃO

Aplicações web são de desenvolvimento rápido e fácil. As maiores desvantagens dessa abordagem são não prover acesso ao hardware e gerar aplicações com uma aparência de aplicação web e não com a aparência nativa da plataforma.

Além disso, aplicações web podem ser facilmente acessadas por suas URLs, mas não podem ser distribuídas em lojas de aplicações, o que pode representar uma desvantagem para o desenvolvedor que deseja criar aplicações comerciais.

Aplicações híbridas, como as desenvolvidas com a ferramenta PhoneGap, são baseadas em tecnologia web, assim, o desenvolvimento com esse tipo de ferramenta é pouco mais complicado quando comparado ao desenvolvimento de aplicações web puras. Mas, como consequência, a aparência da aplicação também é a de uma aplicação web.

A principal vantagem encontrada para a abordagem de aplicações interpretadas é que as aplicações resultantes possuem uma aparência de aplicações nativas. Porém, limitações de performance podem afetar a experiência do usuário de forma negativa.

Além da sua abordagem de desenvolvimento, um ponto importante a ser considerado na escolha de uma ferramenta de desenvolvimento é a confiança de que o provedor de tal ferramenta irá mantê-la sempre atualizada. Os dispositivos móveis estão evoluindo rapidamente em termos de hardware, plataformas móveis e SDKs. As atualizações são lançadas em um ritmo que é difícil de acompanhar. Um provedor de uma ferramenta, que se propõe a construir aplicações para plataformas móveis, deve ter o compromisso de manter tal ferramenta sempre atualizada.

Apesar do desenvolvimento multiplataforma ser um tema antigo, o desenvolvimento multiplataforma de aplicações móveis é um tema recente e importante. A popularização das ferramentas de desenvolvimento multiplataforma de aplicações móveis demanda cada vez mais pesquisas nessa área.

A seguir, são propostos trabalhos futuros para colaborar com o desenvolvimento multiplataforma de aplicações móveis:

a) Realização de um experimento, no qual, poderia ser comparada a produtividade do desenvolvimento nativo com a produtividade do desenvolvimento multiplataforma;

b) Estudo sobre o gerenciamento de recursos de ferramentas multiplataforma: esse tipo de ferramenta, muitas vezes, esconde detalhes da implementação atrás de plugins, como é o caso da ferramenta PhoneGap, ou APIs, como é o caso da ferramenta RhoMobile. A questão é: O gerenciamento de recursos é feito da melhor forma? Testes específicos podem ser feitos com o propósito de expor o vazamento de memória (memory leaks) e o uso impróprio de memória, causa comum de falhas da aplicação;

c) HTML5: o desenvolvimento e adoção do padrão HTML5 promete acesso aos recursos de hardware dos dispositivos e componentes de software através de APIs. Portanto, seria

interessante avaliar aplicações desenvolvidas em HTML5, sob esse aspecto; e

d) Um estudo sobre a viabilidade a longo prazo de várias ferramentas de desenvolvimento multiplataforma, verificando a frequência em que atualizações e correções são disponibilizadas e o tempo para a disponibilização de uma atualização após um novo recurso ter sido disponibilizado pelo sistema operacional.

REFERÊNCIAS

[1] B. Kitchenham, “Procedures for Performing Systematic Reviews,”

Keele, UK, 2004.

[2] S. Charkaoui, Z. Adraoui e E. H. Benlahmar, “Cross-platform Mobile Development Approaches,” em Third IEEE International Colloquium in Information Science and Technology (CIST), Casablanca, Morocco, 2014.

[3] S. Xanthopoulos e S. Xinogalos, “A Comparative Analysis of Cross- platform Development Approaches for Mobile Applications,” em Proceedings of the 6th Balkan Conference in Informatics, Thessaloniki, Greece, 2013.

[4] H. Heitkötter, S. Hanschke e T. Majchrzak, “Evaluating Cross-Platform Development Approaches for Mobile Applications,” em Web Information Systems and Technologies, Münster, Springer Berlin Heidelberg, 2013, pp. 120-138.

[5] I. Dalmasso, S. Datta, C. Bonnet e N. Nikaein, “Survey, comparison and evaluation of cross platform mobile application development tools,” em 9th International Wireless Communications and Mobile Computing Conference (IWCMC), Sardinia, 2013.

[6] O. L. Goaer e S. Waltham, “Yet Another DSL for Cross-platforms Mobile Development,” em Proceedings of the First Workshop on the Globalization of Domain Specific Languages, Montpellier, France, 2013.

[7] R. RAJ e S. TOLETY, “A study on approaches to build cross-platform mobile applications and criteria to select appropriate approach,” em India Conference (INDICON), Kochi, 2012.

[8] M. Palmieri, I. Singh e A. Cicchetti, “Comparison of cross-platform mobile development tools,” em 16th International Conference on Intelligence in Next Generation Networks (ICIN), Vasteras, Sweden, 2012.

[9] Y. A. Redda, “Cross platform Mobile Applications Development,” p.

77, junho 2012.

[10] L. Corral, A. Janes e T. Remencius, “Potential Advantages and Disadvantages of Multiplatform Development Frameworks–A Vision on Mobile Environments,” Procedia Computer Science, vol. 10, pp.

1202-1207, agosto 2012.

A. Ribeiro e A. da Silva, “Survey on Cross-Platforms and Languages for Mobile Apps,” em 2012 Eighth International Conference on the Quality of Information and Communications Technology (QUATIC), Lisbon, Portugal, 2012.

Tatiana Freitas Bernardes é graduada em Ciência da Computação pela Universidade Federal de Itajubá (UNIFEI), Itajubá, Minas Gerais, Brasil, em 2001. Obteve o título de mestre em Engenharia da Computação pelo Instituto de Pesquisas Tecnológicas do Estado de São Paulo (IPT), São Paulo, São Paulo, Brasil, em 2015.

Mario Yoshikazu Miyake possui graduação em Engenharia Mecânica pelo Instituto Tecnológico de Aeronáutica, São José dos Campos, São Paulo, Brasil em 1965; graduação em Ciências Sociais pela Universidade de São Paulo, São Paulo, Brasil, em 1971; mestrado em Engenharia de Produção pela Universidade de São Paulo, São Paulo, Brasil, em 1973; e doutorado em Pesquisa Operacional - University of London, Londres, Inglaterra, em 1977. Pesquisador III do Instituto de Pesquisas Tecnológicas do Estado de São Paulo, onde atua desde janeiro de 1983. Atua na área de Tecnologias da Informação, realizando estudos de prospecção e avaliação tecnológica, pareceres técnicos, projetos de pesquisa e cooperação. Coordenador e docente do curso de mestrado profissional em Engenharia de Computação. Atualmente é pesquisador do Centro de Tecnologia da Informação, Automação e Mobilidade-CIAM do IPT, São Paulo, São Paulo, Brasil.

Referências

Documentos relacionados

O “Fundo Previdencial - Revisão de Plano Patrocinadora 2016” foi constituído com uma parte da Reserva Especial de 31/12/2016 (99,14%) e foi atribuído às patrocinadoras do Plano

Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce

Entre as ferramentas discutidas: várias bibliotecas de rastreamento de marcadores para web (FLARToolkit, flare*tracker, flare*NFT); FLARManager, um framework para o

2 – Fundamentando a sua pretensão, os embargantes começam por dizer que dão por reproduzida a matéria alegada pelo também fiador, seu filho, C…. Dizem que a

4634 MANUEL ALEXANDRE LOPES GOMES FERREIRA 7099 MANUEL AUGUSTO DE SANCHO FONTES RODRIGUES 2290 MANUEL LUDGERO SOUSA LOUREIRO HORTA E MELO 4114 MANUEL MARIA PINA DA SILVA GARCIA

Considera-se COMISSÃO DE COMPRA a comissão paga pelo comprador do(s) animal(is) produto(s) à EMPRESA LEILOEIRA / LEILOEIROS / OUTROS, que o valor será anunciado

Análise temporal e comparação de gravações do excerto orquestral para flauta do Prélude à l´après-midi d´un faune. de Claude Debussy

Ambiente para o desenvolvimento de Aplicativos para Dispositivos móveis 3.. Desenvolvimento Híbrido de Aplicativos para