• Nenhum resultado encontrado

Soluções para o desenvolvimento híbrido, interpretado e generativo

2.2 Soluções existentes no mercado

2.2.2 Soluções para o desenvolvimento híbrido, interpretado e generativo

junto com questões comerciais, contribuíram para o surgimento de alternativas à forma nativa de desenvolvimento, de forma a promover maior produtividade e abrangência de plataformas com menor esforço (HEITKÖTTER; HANSCHKE; MAJCHRZAK, 2013). Uma dessas alternativas, como já citadas, são as abordagens híbrida, interpretada e ge- nerativa. A Tabela 3 apresenta as referências de algumas ferramentas usadas por cada uma das abordagens apresentadas nesta seção. Mais ferramentas utilizando as aborda- gens desta seção serão tratadas com mais detalhes no Capítulo3, destinado aos trabalhos relacionados.

Existe uma série de frameworks que apoiam o desenvolvimento híbrido, interpre- tado e generativo, por meio dos quais é possível desenvolver aplicativos utilizando uma única tecnologia para as várias plataformas, aumentando assim a produtividade. Entre esses frameworks multiplataforma alguns estão citados na Tabela 3como exemplo.

18 developer.microsoft.com/pt-br/windows/downloads/sdk-archive 19 msdn.microsoft.com/pt-br/library/windows/apps/dn465799.aspx 20 www.gartner.com/newsroom/id/3609817

Tabela 3 – Principais ferramentas para desenvolvimento híbrido, interpretado e generativo.

Ferramentas Referências para o desenvolvimento híbrido Cordova http://cordova.apache.org

PhoneGap http://docs.phonegap.com/en/2.3.0 IBM Worklight shorturl.at/ekmTW

AppMobi https://appmobi.com

Ferramentas Referências para o desenvolvimento interpretado Titanium http://www.appcelerator.com/titanium

Titanium Studio http://preview.appcelerator.com/studio LiveCode https://livecode.com

Rhomobile http://rms.rhomobile.com

Ferramentas Referências para o desenvolvimento generativo React Native facebook.github.io/react-native

Haxe haxe.org

Kotlin kotlinlang.org

Cada framework possui suas características específicas de desenvolvimento, como IDE, arquitetura de desenvolvimento distinto, permissão para uso de API’s, acesso a recursos do dispositivo, entre outras. Todas elas podem ser distribuídos de forma similar ao desenvolvimento nativo, isto é, através das lojas de aplicativos na Internet (app store) mantidos por cada sistema operacional.

Um dos frameworks multiplataforma mais populares do mercado é o PhoneGap (FISCHER,2015). Tal framework Open Source, distribuído pelo Apache Cordova, permite o desenvolvimento de aplicativos híbridos e podem funcionar de modo online e offline no dispositivo móvel. O PhoneGap não possui um IDE próprio para o desenvolvimento, mas disponibiliza uma API para ser utilizada no ambiente de preferência do desenvolvedor, que pode ser desde um IDE com muitos recursos até um editor de textos simples. Portanto, é importante que a geração do executável seja realizada em ambiente configurado para cada plataforma. Para o Android, o PhoneGap recomenda o uso do Eclipse com o Android

SDK e ADT plugin configurados. Já a geração do executável para iOS deve ser realizada

no IDE XCode através da plataforma OS X.

Assim como o PhoneGap, o Titanium também é Open Source, porém possui um IDE próprio para o desenvolvimento, o Titanium Studio, que possui versões para os principais SOs disponíveis e é considerada uma abordagem interpretada. Diferente do PhoneGap, o Titanium não utiliza HTML e CSS para construir o aplicativo e sim a lin- guagem JavaScript, que é utilizada para criar a interface, a lógica e o modelo de dados (HEITKÖTTER; HANSCHKE; MAJCHRZAK, 2013). A partir do código base, o Ti- tanium realiza o deploy para as plataformas desejadas. No caso do iOS é necessária a plataforma OS X.

pelo Facebook21. Este framework comercial permite a escrita do código através de tecno-

logias web (XML, CSS e JavaScript) e possui o padrão caixa preta, onde não é possível estender seu metamodelo. Seu diferencial é a geração de códigos nativos legíveis para ambas as plataformas, onde é possível a adição de novas funcionalidades diretamente no código fonte gerado. Embora este framework permita o desenvolvimento multiplataforma em apenas uma linguagem, ele não apresenta aumento no nível de abstração, trocando uma linguagem de programação por outra. O REACT NATIVE não permite o acesso as API’s nativas de cada plataforma, tal acesso é feito através do framework. Esse fato man- tém o desenvolvedor dependente de novas atualizações do framework para acompanhar a evolução tecnológica das plataformas.

Além dos frameworks multiplataforma citados nesta seção, atualmente existe uma gama de outras ferramentas que auxiliam no desenvolvimento de aplicativos, com carac- terísticas próprias de desenvolvimento (REYNOLDS,2017). Nota-se que essa vasta oferta de soluções evidencia a preocupação da indústria com o desenvolvimento multiplataforma e enfatiza o desafio da produtividade.

2.2.3

Soluções para o desenvolvimento web

O desenvolvimento baseado em web também pode ser considerado uma alternativa para a construção de aplicativos. Assim como os aplicativos híbridos, os sistemas web podem ser construídos utilizando HTML5, CSS e JavaScript (AMATYA; KURTI, 2014).

Os sistemas web também são conhecidos como aplicativos HTML5, e se diferem dos aplicativos híbridos em alguns pontos. Uma das principais diferenças é a distribuição que não é feita através das lojas de aplicativos. Os usuários precisam digitar no navegador do dispositivo a URL (Uniform Resource Locator ) do aplicativo. Outro detalhe se refere ao desenvolvimento que não necessita obrigatoriamente de um framework específico, como no caso dos aplicativos híbridos (KONECKI,2014).

O ajuste do software web para diferentes tamanhos de tela é uma questão crucial para a multiplataforma. Para isso, existe o parâmetro viewport do HTML5. Através do qual é possível controlar como a página será exibida no dispositivo móvel, permitindo que o usuário utilize o aplicativo em um computador pessoal ou em um dispositivo móvel.

O conceito usado para a adaptação de aplicativos web para os diferentes tamanhos e orientações de tela é conhecido como responsividade, termo cunhado em 2010 (MAR- COTTE,2010). Esse conceito é responsável pela adaptação da interface do software para diferentes tamanhos e orientação de telas. Tal característica permite que o usuário escolha onde o software é acessado. Em situações onde são realizadas atividades mais complexas, assim como formulários utilizando grandes volumes de dados, manipulação de mapas e

imagens, é conveniente a operação em dispositivos com uma tela maior, como computa- dores pessoais ou tablets. Para casos onde a complexidade da tarefa é menor, por exemplo a realização de consultas, o sistema pode ser operado através de um dispositivo móvel.

A possibilidade de acesso do mesmo aplicativo através de diferentes dispositivos contribui para o aumento na produtividade e manutenção do desenvolvimento, uma vez que uma única aplicação web pode ser acessada por qualquer dispositivo que esteja equi- pado com um navegador (MEHTA; JHA, 2014), fato que não ocorre nos aplicativos hí- bridos.

Existem ferramentas que auxiliam a criação da responsividade, dentre as quais se destaca o Bootstrap22 como um dos frameworks mais utilizados. O Bootstrap provê

bibliotecas que adaptam a interface de sites para os diferentes tamanhos e orientação de tela. Além disso, ele provê recursos para tornar a interface mais apresentável com menos esforço do desenvolvedor.

Outro ponto que deve ser destacado em relação aos aplicativos web é que, pelo fato de não precisar ser instalado nos dispositivos, o uso de memória é reduzido, já que o armazenamento e processamento da aplicação são realizados quase que totalmente no servidor. Porém, para o funcionamento offline é necessário que o aplicativo seja preparado para isso, fazendo o uso de tecnologias como a PWA.