Vous êtes sur la page 1sur 14

1

DECIDINDO ENTRE ABORDAGENS DE DESENVOLVIMENTO

MULTIPLATAFORMA PARA DISPOSITIVOS MÓVEIS

FABIAN, Leandro Junior1


GONÇALVES, Marcelo Carneiro2

RESUMO

Devido a difusão de diferentes dispositivos móveis, de diferentes fabricantes,


e a necessidade de alcançar o maior número de usuários por parte das empresas
desenvolvedoras de apps, os frameworks multiplataforma ganham grande foco no
desenvolvimento. Essas ferramentas prometem, a partir de uma única aplicação,
gerar aplicações compatíveis com várias plataformas móveis. Porém, várias
abordagens são utilizadas no modo como cada uma delas funciona. O trabalho
proposto busca analisar qualitativamente as principais categorias das ferramentas
de desenvolvimento móvel multiplataforma existentes no mercado, buscando
entender os usos de cada abordagem, as especificidades e suas vantagens e
desvantagens. O estudo avaliará as aplicações e as consequências de ferramentas
construídas sobre as abordagens multiplataformas: web, híbrida, interpretada e
compilação cruzada.
Palavras-chave: Desenvolvimento Multiplataforma. Dispositivos Móveis.
Frameworks. Engenharia de Software.

1 INTRODUÇÃO

Em 2017, o número de usuários com ao menos um dispositivo móvel, em


escala mundial, chegou a 5.135 bilhões, representando mais de dois terços da
população do planeta. Além disso, 52 por cento do trafego de informações da WEB
do mesmo ano foram realizadas a partir de um smartphone (KEMP, 2018). Com a
ampla utilização desses aparelhos, o número de empresas competindo no mercado
de aplicativos móveis (apps) cresce na mesma proporção, e para continuarem
competitivas, precisam buscar meios de maximizar a qualidade e a velocidade no
desenvolvimento e entrega das apps.

Entre as dificuldades enfrentadas por essas empresas, destaca-se a


necessidade de disponibilizar seus aplicativos para serem utilizados em plataformas

1
Graduado em Engenharia de Computação.

2
Graduado em Engenharia de Produção. Mestre em Engenharia de Produção e Sistemas.
Doutorando em Engenharia de Produção e Sistemas. Especialista em Metodologia do Ensino na
Educação Superior.
2

diferentes, alcançando assim uma maior extensão do mercado. Quase 95 por cento
dos sistemas operacionais de smartphones sendo utilizados em fevereiro de 2018
estão divididos entre Android e iOS (STATCOUNTER, 2018). Logo, esses costumam
ser os maiores alvos de compatibilidade entre os aplicativos. Porém, desenvolver a
mesma app para diferentes plataformas pode custar tempo e recursos extras. Além
da reestruturação da interface de usuário, é necessário que os desenvolvimentos da
camada lógica e da camada de acesso a dados sejam feitos de formas distintas para
cada sistema operacional alvo. As estruturas, os modos de desenvolvimento e
mesmo as linguagens de programação utilizadas em cada plataforma diferem
consideravelmente.

De encontro à necessidade do desenvolvimento multiplataforma de forma


facilitada, surgem várias ferramentas que prometem, a partir de um único código
compartilhado, gerar a aplicação para mais de uma plataforma. Essas ferramentas
possuem abordagens diferenciadas no que se diz respeito à estruturação,
desenvolvimento e funcionamento do aplicativo, fazendo com que cada uma
apresente benefícios, ou ainda, se mal aplicadas, prejuízos no desempenho das
aplicações.

O estudo aqui apresentado, busca compreender as características das


principais abordagens adotadas em frameworks de desenvolvimento multiplataforma
e quando utilizar cada uma delas, com base no foco da aplicação a ser
desenvolvida. O texto está organizado do seguinte modo: alguns trabalhos
relacionados com os assuntos abordados neste estudo são levantados na Seção 2;
as abordagens de ferramentas de desenvolvimento multiplataforma para dispositivos
móveis analisadas são apresentadas na Seção 3; o relacionamento apropriado de
cada abordagem, considerando o foco da aplicação a ser desenvolvida, é exposto
na Seção 4; por fim, as conclusões e resultados do trabalho são apresentadas em
forma de texto e tabela na Seção 5.

2 TRABALHOS RELACIONADOS

Vários estudos são encontrados na literatura sobre as ferramentas de


desenvolvimento multiplataforma para dispositivos móveis, em sua maioria
comparando duas ou mais ferramentas existentes, muitas vezes de uma mesma
abordagem. De um modo geral, nota-se um grande foco nas abordagens web e
híbridas, como é percebido em Biørn-Hansen (2017), onde são analisados 14 artigos
3

referentes à várias ferramentas e aplicações multiplataforma, e ao menos 11


discutiram alguma que utilizam tais abordagens. Em outros estudos como El-Kassas
et al. (2017), o foco é a comparação das abordagens multiplataforma para
dispositivos móveis, explicitando o modo de funcionamento e o processo de
desenvolvimento de cada uma. Outros ainda avaliam o impacto da ferramenta no
próprio dispositivo, como em Ciman e Gaggi (2015), que medem o impacto no
consumo de energia dos aparelhos.

3 ABORDAGENS DE DESENVOLVIMENTO MULTIPLATAFORMA PARA


DISPOSITIVOS MÓVEIS
De acordo com Raj e Tolety (2012), conforme citado por El-Kassas et al.
(2017), o desenvolvimento multiplataforma para dispositivos móveis divide-se entre
quatro abordagens: web, híbrida, interpretada e compilação cruzada. As subseções
a seguir analisam cada uma delas.

3.1 ABORDAGEM WEB


Na abordagem web, as aplicações, também conhecidas como web apps, são
páginas web acessíveis em um navegador através de uma URL, sem necessidade
de serem instaladas como um aplicativo nativo. Alguns navegadores criam atalhos
para as web apps e ainda as abrem em uma janela limpa, sem os menus próprios do
navegador, melhorando a experiência visual do usuário (MAJCHRZAK, BIøRN-
HANSEN e GRøNLI, 2018).

Por serem acessíveis através do navegador, as web apps também podem ser
utilizadas, com pouca ou nenhuma alteração, por ambientes desktop. A página pode
ser desenvolvida para ser responsiva à diferentes tamanhos de tela e o próprio
servidor web escolhe como a aplicação será visualizada no aparelho cliente,
dependendo de suas características (N. SERRANO, 2013). Contanto que haja um
navegador web disponível, não há preocupação com a plataforma utilizada. A
aplicação torna-se universal. Além do mais, Aplicações web não fazem uso de
atualizações no dispositivo. Como todo conteúdo é carregado a cada acesso, as
alterações necessárias são realizadas diretamente no servidor, e notadas pelo
cliente quando esse acessar a aplicação.

O acesso à Internet é de suma importância na abordagem web, sua falta


compromete o funcionamento da aplicação. Pelo fato de ser executada em um
4

navegador, a utilização de sensores e periféricos é uma dificuldade, não possuindo


acesso a recursos como câmera, GPS ou ligações telefônicas diretamente na
plataforma. A velocidade de sua execução também é mais lenta por depender do
navegador (NABIL LITAYEM, 2015). Outra característica importante é a não
existência da app nas lojas de aplicativos. Para que o usuário possa utilizá-la, deve
pesquisar diretamente na web.

3.1.1 Frameworks para a abordagem web


Por serem utilizados diretamente no navegador, as aplicações podem ser
construídas com qualquer ferramenta compatível com a web. Independente da
ferramenta utilizada, a aplicação final no cliente resume-se em, basicamente: HTML,
para a estruturação das páginas; JavaScript, para uma experiência de usuário mais
dinâmica; e CSS para a estilização visual. Já o lado do servidor possui maior
flexibilidade, no que diz respeito às ferramentas de desenvolvimento, visto que
múltiplos frameworks e plataformas para aplicações web encontram-se disponíveis
no mercado.

Alguns frameworks web destacam-se por apresentarem as identidades


visuais de plataformas específicas. Seus elementos visuais são desenhados com
base nas características dos componentes padrões de aplicações nativas de cada
plataforma. Como é o caso do iWebKit (PLIEGER, 2015) e do Material Components
(GOOGLE INC., 2018), que atribuem aos componentes, animações e interações
gráficas da aplicação web, as características visuais das aplicações nativas dos
sistemas iOS e Android, respectivamente.

3.2 ABORDAGEM HÍBRIDA


Aplicativos híbridos, são também aplicações web, mas que utilizam de uma
aplicação extra (WebView) na plataforma para a renderização gráfica das páginas
HTML (BIØRN-HANSEN, GRØNLI e GHINEA, 2017). Através da WebView, é
concedido à aplicação o acesso a chamadas de sistema da plataforma,
possibilitando a utilização de recursos específicos do dispositivo, como câmera, GPS
e outros periféricos.

Alguns frameworks disponibilizam bibliotecas de renderização de interface de


usuário específica para a plataforma, fazendo com que os elementos visuais
assumam as características dos elementos nativos de cada sistema (DALMASSO,
5

DATTA, et al., 2013). As aplicações híbridas parecem-se muito com as nativas pois,
além de possuírem acesso às características específicas do dispositivo, também
podem ser instaladas a partir de uma loja de aplicativos. Um único código pode ser
executado em plataformas diferentes, com pouca ou nenhuma alteração (NABIL
LITAYEM, 2015).

As desvantagens das aplicações híbridas concentram-se exatamente na


WebView. Uma vez que toda a aplicação é executada através dela, a execução
ganha uma camada extra e torna-se mais lenta. É possível também, que existam
incompatibilidades em alguns acessos específicos ao dispositivo dependendo da
versão da WebView e da plataforma utilizada.

3.2.1 Frameworks para a abordagem híbrida


Analisando 14 artigos referentes a frameworks multiplataforma para
dispositivos móveis, Biørn-Hansen (2017) destaca as ferramentas de tecnologias
híbridas PhoneGap (ADOBE SYSTEMS INC., 2016) e Ionic (IONIC, 2018) como as
mais abordadas. Ambas as ferramentas utilizam como base o framework de código
aberto Apache Cordova (THE APACHE SOFTWARE FOUNDATION, 2015), que
centraliza a aplicação HTML/JavaScript em uma WebView, com acesso a funções
específicas da plataforma e do dispositivo. Essencialmente, o que o PhoneGap e o
Ionic fazem é adicionar novas funcionalidades ao Apache Cordova, especialmente
na parte gráfica das aplicações.

O PhoneGap é a distribuição original do Apache Cordova e também a mais


popular. A estrutura de uma aplicação básica desenvolvida no framework é como a
da . Além da web app com o código-fonte desenvolvido, a aplicação final contém o
motor de renderização HTML, responsável por construir a visualização da página, e
os plugins do próprio framework, que dão acesso às APIs do sistema operacional.
Desse modo, a aplicação web pode ter os mesmos acessos de uma aplicação nativa
(PALMIERI, SINGH e CICCHETTI, 2012).

Figura 1 – Esquema da arquitetura de uma aplicação PhoneGap


6

Fonte: Traduzido de Palmieri, Singh e Cicchetti (2012)

3.3 ABORDAGEM INTERPRETADA


As aplicações interpretadas são desenvolvidas sobre uma linguagem
independente de plataforma, fazendo com que um único código fonte possa ser
executado em sistemas diferentes. Um interpretador dedicado é responsável por
transformar o código em instruções executáveis em tempo real (EL-KASSAS,
ABDULLAH, et al., 2017).

Diferente da abordagem híbrida, que renderiza aplicações web, a app


interpretada gera uma interface de usuário com componentes nativos. Como pode
ser visto no esquema da , a base da app gerada é nativa, porém com o código-fonte
da aplicação em linguagem de script embutido, normalmente JavaScript. Na
execução da app, o código é interpretado e convertido para a plataforma em
questão, através de uma camada de abstração (BIØRN-HANSEN, GRØNLI e
GHINEA, 2017).

Figura 2 – Esquema da arquitetura de uma aplicação interpretada


7

Fonte: Adaptado de Raj e Tolety (2012)

Uma app interpretada é muito semelhante à nativa, sendo, muitas vezes,


difícil diferenciá-las. Existindo um interpretador disponível para a plataforma alvo, o
código pode ser reutilizado. As aplicações podem ser instaladas e são distribuídas
nas lojas de aplicativos. A desvantagem de se ter um interpretador universal para
múltiplas plataformas reside exatamente na total dependência dele. Tanto a
reutilização da interface de usuário quanto o acesso aos sensores e periféricos
dependem da disponibilidade da implementação no framework, pois somente ele
terá acesso às chamadas do sistema operacional. Além disso, o interpretador pode
ocasionar a diminuição da velocidade de execução da aplicação, dependendo do
grau de complexidade dos comandos implementados.

3.3.1 Frameworks para a abordagem interpretada


Na literatura acadêmica, um dos exemplos mais citados para o
desenvolvimento multiplataforma móvel com abordagem interpretada é o Titanium
(APPCELERATOR INC, 2017), framework introduzido em 2008 no mercado que
utiliza o JavaScript como linguagem padrão. Alguns frameworks lançados
recentemente que possuem grande foco atualmente são o React Native
(FACEBOOK INC., 2018) e o NativeScript (PROGRESS SOFTWARE
CORPORATION, 2018). Ambos foram lançados em 2015 e também utilizam o
JavaScript para o desenvolvimento.

No caso do Titanium, a aplicação gerada contém um esqueleto de uma app


nativa envolvendo o código-fonte da aplicação em JavaScript e um motor
interpretador específico para cada plataforma, sendo o WebKit no iOS e o Rhino no
8

Android. As interfaces de usuário não são construídas com o uso de HTML, mas
programaticamente no código da aplicação, e utilizam elementos nativos. O Titanium
é de código-aberto, porém é software proprietário, possuindo uma versão básica
gratuita e outras duas pagas: Professional Edition e Enterprise Edition (EL-KASSAS,
ABDULLAH, et al., 2017).

3.4 ABORDAGEM DE COMPILAÇÃO CRUZADA


Na compilação cruzada, a aplicação é desenvolvida e compilada em uma
plataforma, mas executada em outra. Consequentemente, a plataforma de
desenvolvimento gera binários incompatíveis com ela mesma, mas que serão
executados normalmente no sistema alvo (EL-KASSAS, ABDULLAH, et al., 2017). O
desenvolvimento da aplicação pode ser todo feito em uma linguagem comum e o
compilador cruzado compila o código-fonte para os binários nativos de cada
plataforma.

A grande vantagem da compilação cruzada é o fato de a aplicação final ser


realmente nativa, uma vez que o compilador cruzado transforma a aplicação de
desenvolvimento para outra completamente executável na plataforma alvo. Com
isso, é possível ter acesso às mesmas funcionalidades de uma aplicação nativa,
incluindo chamadas de sistema e componentes de interface de usuário. O
desempenho desse tipo de abordagem destaca-se das anteriores.

Por ter acesso a características mais próximas às nativas, a grande


desvantagem no desenvolvimento das aplicações geradas por compilação cruzada é
a baixa reutilização de implementações específicas de plataforma, como interfaces
de usuário e uso de sensores e periféricos. Sistemas operacionais diferentes
possuem métodos diferentes de acesso à essas funções, dificultando a reutilização.
Em aplicações mais complexas e que demandem de mais características
específicas de plataforma, a abordagem de compilação cruzada pode ocasionar a
reescrita do código-fonte, tornando a complexidade do desenvolvimento comparável
à abordagem nativa (RAJ e TOLETY, 2012).
3.4.1 Frameworks para a abordagem de compilação cruzada
Uma das ferramentas de desenvolvimento multiplataforma para aplicações
móveis disponíveis no mercado é o Xamarin (MICROSOFT, 2018), um framework
baseado no projeto Mono (MONO PROJECT, 2018), esse sendo uma
implementação de código aberto da plataforma .NET (MICROSOFT, 2018). O
9

Xamarin permite criar aplicações para Android, iOS e Windows, a partir de um


código compartilhado na linguagem C#.

Diferente de outras ferramentas, o Xamarin mapeia as funcionalidades nativas


de cada plataforma para a sintaxe do C#, utilizando os mesmos nomes de objetos,
propriedades e métodos nativos originais. Apesar de isso não contribuir para a
reutilização do código, o desenvolvedor tem a vantagem de não precisar aprender
uma nova linguagem. Em 2015, foi disponibilizado o Xamarin.Forms, que permite
criar um único código-fonte e executá-lo em várias plataformas (MICROSOFT,
2018). Nesse caso, alguns acessos específicos de cada plataforma encontram-se
inacessíveis e devem ser desenvolvidos individualmente.

4 ESCOLHA DA ABORDAGEM
A abordagem de desenvolvimento multiplataforma utilizada impacta
diretamente no desempenho e, consequentemente, na aceitação da aplicação pelo
usuário. Conhecendo o foco da aplicação, é possível analisar quais abordagens são
preferíveis para seu desenvolvimento multiplataforma estimando seus impactos na
execução da app final.

Em um modo geral, as características que distinguem e que mais impactam


nas aplicações para dispositivos móveis podem ser resumidas em três análises: o
nível de utilização de recursos da plataforma, o local em que os dados serão
processados e a dependência de uma conexão de dados. As subseções seguintes
abordam cada uma dessas análises e quais abordagens são melhor aplicadas em
seus desenvolvimentos.

4.1 UTILIZAÇÃO DE RECURSOS DA PLATAFORMA


O framework utilizado para o desenvolvimento multiplataforma de aplicações
que dependem da utilização de recursos de hardware ou software específicos, deve
ser escolhido com cautela. Pelo fato de cada plataforma disponibilizar um modo
diferente de acessar o mesmo recurso, o acesso à câmera, por exemplo, a
implementação do framework pode apresentar melhor desempenho em algumas
plataformas do que em outras, ou, em alguns casos, disponibilizar o acesso ao
recurso em um conjunto restrito de plataformas, ocasionando incompatibilidades.
10

Em Palmieri, Singh e Cicchetti (2012), é comparada a disponibilidade de


acesso às APIs dos principais recursos do sistema em cinco tecnologias de
desenvolvimento multiplataforma. A geolocalização, por exemplo, encontrou-se
disponível em todos os frameworks. Já o acesso à câmera, em apenas três deles. E
a leitura do acelerômetro do dispositivo, em apenas duas das tecnologias.

As aplicações web, não apresentam APIs de acesso direto à recursos da


plataforma, somente se utilizarem algo específico do navegador web em que estão
sendo executadas. Se há somente a necessidade de acessos à recursos básicos,
como notificações e armazenamento, a abordagem híbrida pode ser adotada com
segurança no desenvolvimento. Já em aplicações que façam o uso de sensores
variados e em grande quantidade, por ter maior proximidade às aplicações nativas,
as abordagens interpretada e de compilação cruzada, são as que apresentam a
maior utilização de recursos específicos em múltiplas plataformas.

4.2 LOCAL DE PROCESSAMENTO DOS DADOS


Aplicações que demandam de maior processamento de dados devem avaliar
qual abordagem multiplataforma adotar. Em casos em que a aplicação seja apenas
para leitura ou apresentação de dados, onde todo o processamento da lógica de
negócio esteja em um servidor acessível através de uma conexão de dados, uma
simples aplicação web já obtêm bons desempenhos. Porém, em aplicações que
exijam maior processamento e resposta rápida, abordagens mais próximas da
nativa, apresentam melhores resultados.

Como as abordagens híbrida e interpretada dependem de camadas extras


para sua execução, aplicações com grande exigência de processamento podem
tornar-se lentas ou mesmo não funcionarem. Aplicações geradas através de
compilação cruzada podem apresentar melhores desempenhos em casos como
esse, pois a aplicação pode ser executada de forma mais direta à plataforma.

Além do tempo de resposta, outro ponto que pode ser analisado são os
recursos físicos dos dispositivos. Em Ciman e Gaggi (2015), é comparado o
consumo de energia entre aplicações nativas e aplicações que utilizam de
abordagens multiplataforma. Com o aplicativo aberto, sem a execução de cálculos
ou acessos, a diferença entre o consumo de uma aplicação nativa e outra que utiliza
uma abordagem multiplataforma, chegou à 7 %. Em alguns casos específicos, a
diferença de energia consumida alcançou os 60 %.
11

4.3 DEPENDÊNCIA DE CONEXÃO DE DADOS


Outro ponto que deve ser considerado na escolha da abordagem
multiplataforma é a dependência de uma conexão com a Internet ou com outra rede
qualquer. Na abordagem web, a aplicação torna-se inacessível em locais ou
circunstâncias que não apresentam conexão web. Portanto, para apps com
comportamento autônomo, onde a lógica de negócio deve ser processada no próprio
dispositivo, tal abordagem não caberia.

No entanto, para aplicações baseadas em servidor, a adoção da abordagem


web pode trazer alguns benefícios. Ao contrário de outras abordagens, que instalam
as apps a partir de uma loja de aplicativos, a abordagem web exige que seu
conteúdo seja recarregado do servidor a cada acesso, possibilitando que as
atualizações sejam centralizadas no próprio servidor de aplicação, poupando os
desenvolvedores da burocracia e do tempo gasto nas submissões de novas
atualizações nas lojas específicas para cada plataforma.

5 RESULTADOS E CONCLUSÕES
Analisando somente o desempenho da aplicação móvel, a melhor abordagem
a ser adotada é sempre a nativa para cada plataforma. Porém, devido à
fragmentação do mercado de dispositivos, cada um com suas especificidades, e a
necessidade de alcançar o máximo de usuários, abordagens multiplataformas
tornam-se necessárias. Utilizando-as, é possível distribuir uma aplicação em várias
plataformas, através de um único código-fonte compartilhado.

Vários frameworks multiplataforma encontram-se disponíveis no mercado,


cada um com suas características e aplicações. Dependendo do foco abordado em
cada implementação, a escolha da abordagem utilizada influencia diretamente no
desempenho da app e em sua aceitação por parte dos usuários.

Nesse estudo, foram avaliadas algumas das abordagens utilizadas nas


ferramentas de desenvolvimento multiplataforma para dispositivos móveis, e qual
delas melhor se adapta em cada tipo de aplicação. O resultado final alcançado
resume-se às informações apresentadas na Tabela 1. A partir das características da
aplicação a ser desenvolvida é atribuído um nível de utilização de 1 à 4 em cada
abordagem. As abordagens que levam o valor 1, tendem a apresentar melhores
12

resultados para aplicações com a combinação de características do lado esquerdo


da tabela. Quanto maior o valor, menos aconselhável é a utilização da abordagem.

Tabela 1 – Nível de recomendação de cada abordagem multiplataforma no desenvolvimento de


aplicações móveis com características específicas

Características da aplicação Abordagens recomendadas

Requer Dados são Utiliza recursos We Híbrida Interpretada Compilação


acesso à processados no específicos da b cruzada
web servidor plataforma

✓ ✓ 1 2 3 4

✓ ✓ ✓ 4 1 2 3

✓ ✓ 4 3 1 2

✓ ✓ 4 3 2 1

Nota-se que em aplicações que utilizem mais recursos específicos da


plataforma, bem como em casos em que um grande número de dados é processado
no próprio dispositivo, abordagens como a interpretada e a de compilação cruzada
apresentam melhores resultados. Isso deve-se à aplicação final ter uma arquitetura
mais próxima de uma nativa. Ao se utilizar uma abordagem web não é possível
executar a aplicação em casos onde não houver acesso ao servidor, seja através da
Internet ou de outra rede qualquer. Portanto, para esse fim, não é aconselhável sua
utilização. Porém, se o servidor estiver sempre disponível e a aplicação não
demandar de recursos mais específicos da plataforma, abordagens como a web e a
híbrida cabem corretamente.

6 REFERÊNCIAS
ADOBE SYSTEMS INC. PhoneGap. Adobe PhoneGap, 2016. Disponivel em:
<https://phonegap.com/>. Acesso em: 19 Abril 2018.

APPCELERATOR INC. Titanium. Appcelerator, 2017. Disponivel em:


<https://www.appcelerator.com/Titanium/>. Acesso em: 19 Abril 2018.

BIØRN-HANSEN, A.; GRØNLI, T. M.; GHINEA, G. Baseline Requirements for


Comparative Research on Cross-Platform Mobile Development. Norsk
Informatikkonferanse, Nordland, 2017.
13

CIMAN, M.; GAGGI, O. Measuring Energy Consumption of Cross-Platform


Frameworks for Mobile Applications. Web Information Systems and Technologies,
Barcelona, n. 10, Dezembro 2015.

DALMASSO, I. et al. Survey, comparison and evaluation of cross platform


mobile application development tools. Wireless Communications and Mobile
Computing Conference, Sardinia, 5 Julho 2013.

EL-KASSAS, W. S. et al. Taxonomy of Cross-Platform Mobile Applications


Development Approaches. Ain Shams Engineering Journal, El-Abaseya, v. 8, n. 2,
p. 163-190, Junho 2017.

FACEBOOK INC. React Native - A framework for building native apps using
React. Github, 2018. Disponivel em: <https://facebook.github.io/react-native/>.
Acesso em: 19 Abril 2018.

GOOGLE INC. Material Components for the Web. Material Design, 2018.
Disponivel em: <https://material.io/components/web/>. Acesso em: 19 Abril 2018.

IONIC. Build Amazing Native Apps and Progressive Web Apps with Ionic
Framework and Angular. Ionic, 2018. Disponivel em: <https://ionicframework.com/>.
Acesso em: 19 Abril 2018.

KEMP, S. Digital in 2018: World’s internet users pass the 4 billion mark. We
Are Social, 30 Janeiro 2018. Disponivel em: <https://wearesocial.com/blog/2018/01/
global-digital-report-2018>. Acesso em: 2018 março 2018.

MAJCHRZAK, T. A.; BIøRN-HANSEN, A.; GRøNLI, T.-M. Progressive Web


Apps: the Definite Approach to Cross-Platform Development? Hawaii International
Conference on System Sciences, Honolulu, n. 51, Janeiro 2018.

MICROSOFT. Mobile App Development & App Creation Software - Xamarin.


Xamarin, 2018. Disponivel em: <https://www.xamarin.com/>. Acesso em: 19 Abril
2018.

MICROSOFT..NET. Microsoft, 2018. Disponivel em:


<https://www.microsoft.com/net/>. Acesso em: 19 Abril 2018.

MONO PROJECT. Mono. Mono Project, 2018. Disponivel em:


<https://www.mono-project.com/>. Acesso em: 19 Abril 2018.
14

N. SERRANO, J. H. G. G. Mobile Web Apps. IEEE Software, v. 30, n. 5, p.


22-27, 2013.

NABIL LITAYEM, B. D. S. R. Review of Cross-Platforms for Mobile Learning


Application Development. Journal of Advanced Computer Science and
Applications, v. 6, n. 1, p. 31-39, 2015.

PALMIERI, M.; SINGH, I.; CICCHETTI, A. Comparison of Cross-Platform


Mobile Development Tools. International Conference on Intelligence in Next
Generation Networks. Berlin: [s.n.]. 2012. p. 179-186.

PEROVANO, D. G. Manual de Metodologia da Pesquisa Científica. 1ª. ed.


Curitiba: Intersaberes, 2016.

PLIEGER, C. Build great iPhone webapps with iWebKit. SnippetSpace, 2015.


Disponivel em: <http://snippetspace.com/>. Acesso em: 19 Abril 2018.

PROGRESS SOFTWARE CORPORATION. Native mobile apps with Angular,


TypeScript, JavaScript - NativeScript. NativeScript, 2018. Disponivel em:
<https://www.nativescript.org/>. Acesso em: 19 Abril 2018.

RAJ, R. C. P.; TOLETY, S. B. A study on approaches to build cross-


platform mobile applications and criteria to select appropriate approach.
Annual IEEE India Conference. Kochi: Institute of Electrical and Electronics
Engineers. 2012. p. 625-629.

RAJ, R.; TOLETY, S. B. A study on approaches to build cross-platform mobile


applications and criteria to select appropriate approach. 2012 Annual IEEE India
Conference (INDICON), p. 625-9, Dezembro 2012.

STATCOUNTER. Mobile Operating System Market Share Worldwide.


StatCounter GlobalStats, 2018. Disponivel em: <http://gs.statcounter.com/os-
market-share/mobile/>. Acesso em: 6 Março 2018.

THE APACHE SOFTWARE FOUNDATION. Apache Cordova. Apache


Cordova, 2015. Disponivel em: <https://cordova.apache.org/>. Acesso em: 19 Abril
2018.

Vous aimerez peut-être aussi