ESTUDO DE CASO

Instituto de Gestão em Tecnologia da Informação

ESTUDO DE CASO

Giliard LARA ABREU

Resumo

O objetivo deste trabalho tem como finalidade mostrar como desenvolver aplicativos móveis sem uso de linguagens nativas, utilizando um conjunto de linguagens como HTML, Java Script, CSS. Foi realizado um estudo bibliográfico demonstrando os principais frameworks gratuitos, tendo como finalidade uma pesquisa básica com o objetivo de gerar novos conhecimentos através de outros conhecimentos já adquiridos. Desenvolver aplicativos móveis híbridos, e atender um maior número possível de pessoas, se faz necessário, devido à grande demanda de aplicativos para este fim, não havendo necessidade de desenvolver em linguagens de programação específicas para cada plataforma, além de ganhar tempo no desenvolvimento com a ajuda de vários Frameworks disponíveis no mercado. Para desenvolver para Android (Tablet e Smartphone), IOS (iPhone e iPad) e Windows Phone, há um custo de aprendizado com linguagens nativas, não sendo possível disponibilizar o aplicativo para outra plataforma. Conclui-se que o desenvolvimento híbrido através de frameworks são uma boa alternativa quando não se tem condições, sejam estas de conhecimento técnico ou financeiras, de se desenvolver uma única aplicação para várias plataformas.

Palavras-chave: Aplicativos Móveis; Software Nativo; Software Híbrido

Abstract

The objective of this work is to show how to develop mobile applications without the use of native languages, using a set of languages like HTML, Java Script, CSS. A bibliographic study was conducted demonstrating the main free frameworks, having as purpose a basic research with the objective of generating new knowledge through other knowledge already acquired. Developing hybrid mobile applications, and serving as many people as possible, is necessary because of the high demand for this purpose, not having to develop in platform-specific programming languages, and gain time in Development with the Available help from some Frameworks on the market. Developing for Android (Tablet and Smartphone), IOS (iPhone and iPad) and Windows Phone, have a cost of learning with native languages, and it is not possible to make the application available to another platform. It is concluded that the development through frameworks are a good alternative when one does not have the technical or financial conditions to develop a single application for several platform.

Palavras-chave: Mobile Apps; Native Software; Hybrid Software

Introdução

Devido à grande demanda de aplicativos para dispositivos móveis, e atender um maior número de usuários, faz-se necessário o desenvolvimento híbrido para dispositivos móveis, não havendo necessidade de desenvolver em linguagens de programação especificas para cada plataforma, além de ganhar tempo no desenvolvimento com a ajuda de vários Frameworks disponíveis no mercado.

Os dispositivos móveis crescem a cada dia (CEVALLOS, 2014) e já representam a maioria dos sistemas computadorizados recentemente. Por isso torna-se cada vez mais importante criarmos aplicativos voltados para esse segmento. Para desenvolver para IOS, Android ou Windows Phone há um custo de aprendizado com desenvolvimento com linguagens nativas, sendo que o app não é possível ser disponibilizado para outra plataforma (CORRALJANESREMENCIUS, 2012).

Para cada sistema operacional existe a princípio uma linguagem específica, exemplo, para desenvolvermos em IOS, a linguagem de programação
é o Objective-C (TECHOTOPIA, 2012) com a IDE Xcode (Apple Inc., 2017) e o SDK do iOS, para desenvolver em Android, devemos utilizar a linguagem JAVA (ORACLE, 2012)  com o Android Studio (Android, 2017) e para Windows Phone seria em C# com o Microsoft Visual Studio (Microsoft, 2017), conforme a Figura 1, a seguir:

Para este estudo de caso serão considerados as seguintes plataformas, Android, IOS e Windows Phone, conforme a Figura 2, a seguir:

Antes de darmos continuidade em nosso estudo de caso verificaremos as diferenças entre os aplicativos Híbridos x Nativos, conforme a Figura 3 abaixo:

Os aplicativos Nativos, são instalados através de um aplicativo de loja (como Google Play do Android e App Store da Apple). Sendo desenvolvidos especificamente para tal plataforma, podendo aproveitar todas as funcionalidades do sistema operacional do dispositivo, como: câmera, GPS, lista de contatos entre outros. Também é possível funcionar sem conexão com a internet (Raluca, 2013).

Web apps não são aplicativos reais, na realidade são sites que, de diversas formas, parecem com um aplicativo nativo. Eles são executados através de um navegador como por exemplo Google Chrome, Mozila Firefox, Microsoft Edge.

Aplicativos híbridos, são parcialmente nativos e web apps, assim como os nativos, eles devem ser baixados através de um aplicativo de loja (como Google Play do Android e App Store da Apple), ficam armazenados na tela principal do dispositivo e podem aproveitar todas as suas funcionalidades (câmera, GPS entre outros). Como web apps, eles podem ser baseados em HTML5 e exibidos através de um navegador embutido no aplicativo, tendo parte ou conteúdo total carregado da web. Os aplicativos híbridos são populares porque permite desenvolvimento multiplataforma, utilizando o mesmo HTML para diferentes sistemas operacionais como através de frameworks como Cordova, PhoneGap, permitem, inclusive compilando para o formato nativo, reduzindo custos de produção (Raluca, 2013).

O grande detalhe do aplicativo híbrido está na webview é que ela não se limita à renderização da app (RALUCA, 2013). O mesmo acessar recursos nativos do dispositivo como o microfone, a câmera. Isso é possível graças a uma interface javascript que torna a webview apta a executar código nativo nos dispositivos.

Dando continuidade as diferenças,  entre o desenvolvimento desses dois tipos de aplicativos móveis, o app nativo é desenvolvido para utilização em uma plataforma específica, como iOS, Windows Phone e Android. Dessa forma, o aplicativo nativo é capaz de explorar todas as potencialidades da plataforma para a qual foi criado. Consegue ter acesso a diversos recursos dos aparelhos como GPS, câmera, calendário, lista de contatos, entre outros. E nem sempre os aplicativos nativos precisam da internet para seu funcionamento (Raluca, 2013).

Já o desenvolvimento do aplicativo híbrido é um pouco diferente, o app híbrido tem características do app nativo e da web, utilizando códigos de ambos para sua criação. Portanto, esse modelo de app pode usar recursos tanto da internet quanto do dispositivo e tem a capacidade de ser executado em diferentes plataformas. 

Porém, o app híbrido não consegue acessar as funcionalidades do dispositivo de forma direta, sendo necessário o uso de um framework que funcione como intermediário entre o aplicativo e o dispositivo (Raluca, 2013).

Tabela Comparativa


HíbridoNativoMelhor
GráficoHTML, Canvas, SVGAPIs NativasNativo
PerformanceMédiaRápidaNativo
Aparência “natural”EmuladoAparência realNativo
Recursos do EquipamentoMuitaTotalNativo
Publicação nas lojasQuase normalNormalNativo
Reutilização do códigoTotalNenhumaHíbrido
Facilidade de atualizaçãoFácilMédioHíbrido
Custo de desenvolvimentoMédioAltoHíbrido
Curva de aprendizadoMédioLentaHíbrido
Tempo de desenvolvimentoBaixoAltoHíbrido
Conhecimentos requeridosHTML5, CSS e JavascriptJava, ObjectiveC e C# 

UERJ – Passos para escolher o melhor tipo de App.

Compreendemos que há vantagens e desvantagens em qualquer opção, porém cabe ao desenvolvedor tirar as suas próprias conclusões para que o objetivo seja alcançado, quando estamos falando de prazo, multiplataforma, tempo de aprendizado, reutilização de código. Alguns desenvolvedores dão atenção a performance das aplicações, alegando de que é fácil perceber se uma aplicação é híbrida ou nativa, analisando seu desempenho. Não podemos alegar que eles estão certos ou errados, há casos e casos. Levando em consideração os usuários, que é a parte principal e interessada, os mesmos não estão preocupados se a aplicação é híbrida ou nativa e sim numa aplicação que atenda às suas necessidades e não travem o seu aparelho.

Levando em consideração que existem diversas plataformas diferentes para dispositivos móveis, e que há uma demanda considerável pelo mercado para abranger um maior número possível de plataformas, e que possa atender requisitos básicos como qualidade, performance, experiência do usuário podemos considerar os dispositivos móveis híbridos através de frameworks possui várias vantagens em relação ao desenvolvimento nativo.

Este trabalho tem como finalidade mostrar como desenvolver uma aplicação híbrida que utiliza um conjunto de linguagens como HTML, Java Script, CSS capaz de produzir aplicativos móveis para várias plataformas, sem o uso de tecnologias nativas, que possa ser executada nas principais plataformas móveis do mercado como Android (Tablet e Smartphone), IOS (iPhone e iPad) e Windows Phone. O Objetivo principal em desenvolver um app híbrido consiste em desenvolver um único aplicativo e disponibilizar para várias plataformas mantendo a compatibilidade.

Como desenvolver dispositivos móveis para várias plataformas sem a necessidade de usar linguagens nativas?  

Para responder a esta pergunta serão apresentados na seção 2, a metodologia utilizada para a pesquisa e na seção 3 iremos falar sobre alguns frameworks gratuitos disponíveis.

metodologia

Este artigo trata-se de uma pesquisa em comparação entre duas abordagens para desenvolver dispositivos móveis, são elas, nativo e híbrida. 

 A pesquisa é
de natureza aplicada com abordagem qualitativa e exploratória. conforme Aaker, Kumar & Day
(2004) “pesquisas exploratórias costumam envolver abordagens qualitativas” e ainda Gil (2002) explica que pesquisas exploratórias “tem como objetivo proporcionar maior familiaridade com o problema, com vistas a torná-lo mais explícito ou a construir hipóteses”.

Tendo como finalidade uma pesquisa básica com o objetivo de gerar novos conhecimentos através de outros conhecimentos já adquiridos, apresentando uma abordagem qualitativa entre dois tipos de desenvolvimento para aplicativos móveis.

Para responder à questão do problema apresentado, será realizada uma pesquisa sobre aplicações móveis híbridas, sem uso de linguagens nativas, suas vantagens e desvantagens.

Serão utilizadas pesquisas online, monografias, artigos científicos, bibliografias para informar sobre o desenvolvimento híbrido e nativo para dispositivos móveis e ainda identificar os principais frameworks disponíveis, mais populares, que possibilitam o desenvolvimento de uma aplicação utilizando tecnologias web como, JavaScript, Linguagem de Folhas de Estilo (CSS) e Linguagem de Marcação de Hipertexto (HTML 5).

No decorrer da realização do estudo, serão apresentadas as diferenças entre o desenvolvimento nativo X híbrido, sendo realizada uma comparação entre os dois modos, demonstrando as características de cada um, visando estabelecer sua melhor escolha com base na sua finalidade de utilização, com o objetivo final de atender a necessidade do cliente.

Devido a inúmeros sistemas operacionais disponíveis o alcance do estudo será restrito apenas a três sistemas operacionais móveis mais populares, que são IOS, Android e Windows Phone.

Com base nas experiências obtidas nas pesquisas e no estudo realizado, serão feitas as conclusões finais conforme conteúdo descrito, baseado na seção 4 (apresentação da pesquisa), na seção 5 (discussão dos resultados) e na seção 6 (considerações finais).

REFERENCIAL TEÓRICO

Esta seção tem como objetivo apresentar os principais Framework atuais para desenvolver aplicações híbridas, seus padrões de arquitetura, suas vantagens e desvantagens.

Os frameworks nos ajudam a desenvolver aplicativos mais produtivos, mais estáveis, já com alguns padrões arquiteturais embutido como MVC, com isso ganhamos tempo no desenvolvimento e algumas facilidades, como Layout Responsivo, Padrões Arquiteturais.

Antes de falarmos dos frameworks mais comuns, seguimos com um breve resumo das linguagens HTML5, JavaScript e CSS:

  • HTML 5: Dentre diversas novas funcionalidades, o HTML5 permite que os autores incluam dados nas marcações, para que os mesmos sejam usados por scripts do lado cliente ou do lado servidor, através do uso de atributos com o prefixo “data-“. O HTML5 garante que estes atributos não serão alterados pelos navegadores. Essa é uma funcionalidade muito importante e amplamente utilizada pelos frameworks de desenvolvimento de aplicações Web atuais, como o AngularJS, por exemplo. O AngularJS faz uso desses dados nas marcações para diversos fins, um exemplo é o atributo “data-ng-model” para vincular uma tag HTML5 a um atributo de um objeto JavaScript (W3C RECOMMENDATION,2014).
  • JavaScript: Popularmente conhecido como JS é uma linguagem interpretada e orientada a objeto com funções de primeira classe, apesar de mais conhecida como a linguagem de scripts para páginas Web, tem diversos outros usos em ambientes fora do navegador, como, por exemplo, em Node.js ou em bancos de dados não relacionais, como o Apache CouchDB. Conforme documentação (JavaScript – Mozilla Developer Network, 2014), é uma linguagem baseada em prototype, multi-paradigma e dinâmica, suportando tanto programação orientada a objetos, como imperativa e funcional (W3C RECOMMENDATION,2014).
  • CSS: É a abreviação para os termos em inglês Cacading Style Sheet, traduzindo para o português ficou como Folha de Estilo em Cascata. A definição mais simples para CSS encontra-se na página do site da W3C(W3C RECOMMENDATION,2014)onde fala que: “Folha de Estilo em Cascata é uma linguagem para descrever a apresentação de páginas da Web”. Por exemplo: background, cores, espaçamentos, fontes e tamanhos.

CORDOVA E PHONEGAP

PhoneGap é um framework que permite desenvolvimento aplicativos híbridos, criado pela empresa Nitobi. Após a empresa ser comprada pela Adobe Systems Inc. o PhoneGap teve seu código doado para a Apache Software Foundation para garantir que outras empresas pudessem contribuir (BEZERRA; SCHIMIGUEL, 2016). Como o PhoneGap é uma marca registrada de propriedade da Adobe, na Apache teve seu nome alterado para Cordova. Tanto o Apache Cordova quanto o Adobe PhoneGap, são gratuitos e open source, no entanto, o PhoneGap possui um ambiente integrado com serviços da Adobe, como o PhoneGap Build (BEZERRA; SCHIMIGUEL, 2016). 

Cordova permite que aplicações não nativas tenham acesso a funcionalidades nativas do dispositivo como sensores, contatos e câmera. No entanto, o Cordova apenas consegue fazer um aplicativo criado em HTML rodar como se fosse nativo em um dispositivo com Android e iOS, mas não consegue imitar a usabilidade e aparência dos dispositivos nativos (BEZERRA; SCHIMIGUEL, 2016). 

Para preencher essa lacuna, outros frameworks foram criados em cima do Cordova como um complemento, provendo bibliotecas HTML e CSS para a criação de um front-end que se aproxime o máximo possível da usabilidade e experiência de usuário de aplicações móveis nativas (BEZERRA; SCHIMIGUEL, 2016). 

O Cordova possui muitos plugins para poder acessar funcionalidades específicas do aparelho em que está sendo executado. Esses devem ser instalados no projeto do aplicativo via cliente (BEZERRA; SCHIMIGUEL, 2016). 

A fim de se evitar confusões em relação aos nomes dados ao PhoneGap e ao Cordova, pode-se entender o PhoneGap como uma distribuição do Apache Cordova, mantido pela Adobe Systems Inc. 

Estrutura PhoneGap e Cordova

As informações do aplicativo, assim como suas configurações, ficam em um arquivo com o nome de config.xml. A estrutura deste arquivo baseia-se nas especificações de XML da W3C (W3C RECOMMENDATION,2014) o arquivo config pode controlar alguns aspectos de comportamento da aplicação, como o nome do aplicativo, cor de fundo, orientação de tela.

A aplicação é como se fosse uma página web, onde um arquivo chamado index.html, por exemplo, contém todo o desenvolvimento feito em HTML5,  além de referenciar o CSS, o JavaScript, as imagens e os arquivos de mídia utilizados (BEZERRASCHIMIGUEL,2016).

Em aplicações Multi-page, os arquivos .html podem tanto referenciar os mesmos  arquivos, quanto cada um fazer referências diferentes, o que varia de acordo com as necessidades e quantidades de configurações diferentes para as diversas páginas, assim como a estrutura feita no projeto (BEZERRASCHIMIGUEL,2016).

Estrtutura Config.xml PhoneGap.Estrtutura Config.xml PhoneGap.
PhoneGap, 2017.

ANGULARJS

O AngularJS é um framework recente no mercado, desenvolvido pela Google, utilizado principalmente em aplicações MVC, utiliza a linguagem HTML para a criação de aplicações dinâmicas (GOOGLE,2017).

Ele permite a utilização do padrão MVC no lado do cliente, utilizando o AJAX para as requisições, e organiza suas aplicações MVC não apenas no lado do servidor, mas também no lado do cliente, assim há uma boa separação de responsabilidades do código escrito pois o MVC guia o desenvolvedor a fazer a coisa do jeito certo  (BEZERRASCHIMIGUEL,2016).

O objetivo do AngularJS é facilitar o desenvolvimento, a manutenção dos sistemas e seus testes ele permite estender parte do HTML, expressando as funcionalidades através de elementos customizados, classes, atributos e comentários (BEZERRASCHIMIGUEL,2016).

Estrutura AngularJS

A arquitetura do AngularJS consiste na criação de módulos de sistema que podem trabalhar de forma separada ou conjunta. O Angular trabalha de forma a solicitar informações do lado servidor somente quando necessário, sendo todas as outras atividades da aplicação controladas por ele na camada de visão (MARCO,2015).

Conforme figura abaixo são listadas as diretivas básicas do AngularJs, Application, Template, Operation, Forms, Binding.

Diretivas AngularJS.Diretivas AngularJS.
AngularJS, 2017.

Estrutura inicial do AngularJS (GOOGLE,2017) é como qualquer aplicação web, uma página básica. A diferença aqui é que vamos informar uma nova propriedade na tag do nosso arquivo: ng-app.

Estrutura inicialEstrutura inicial
AngularJS, 2017

No AngularJS toda a sua estrutura é dividida por pastas, para cada camada de visão ou controle por exemplo há uma pasta específica, tudo é dividido em pasta. Uma estrutura de aplicativo AngularJS ideal deve ser modularizada, em funções muito específicas. Também queremos aproveitar as maravilhosas diretrizes do AngularJS para compartilhar ainda mais aplicativos. Exemplo da estrutura:

Estrutura AngularJSEstrutura AngularJS
AngularJS, 2017

IONIC FRAMEWORK

Ionic é um framework de software livre para desenvolvimento de aplicativos híbridos, que utiliza tecnologias web como HTML, CSS e JavaScript para dispositivos móveis

Foi criado pela empresa Drifty Co. em 2013 com base na necessidade que seus clientes apresentavam de criarem apps. Foi projetado para ser muito performático e funcionar com padrões e tecnologias web modernas (DRIFTY,2016).

Ele foi criado sobre os frameworks Cordova e AngularJS e com apenas um código é possível desenvolver aplicativos multiplataformas como por exemplo Android, iOS e Windows Phone (DRIFTY,2016).

O Ionic provê, além do HTML e CSS otimizado para dispositivos móveis, uma série de ferramentas, que compõem um conjunto de recursos fornecendo velocidade e facilidade no desenvolvimento de aplicativos híbridos (DRIFTY,2016).

O Ionic támbém possui um conjunto de ferramentas para desenvolvermos.

Estrutura Ionic

A estrutura do Ionic é dividida em 5 camadas, Views, Controllers, App Configuration, Directives que são detalhadas a seguir:

  • Views: Camada de apresentação, onde as informações são mostradas para o usuário. Pode ser comparada como o seu homônimo no padrão MVC. Muitas vezes são chamadas de templates, pois é a forma com o AngularJS se refere a elas. São, normalmente, arquivos HTML separados, que são chamados e inseridos quando necessário pelo AngularJS. É possível utilizar data binding nas Views para poder estabelecer uma conexão com a controladora e compartilhar informações entre as duas camadas (DRIFTY,2016).
  • Controllers: É a camada responsável por controlar o fluxo de dados e lógica da aplicação. Também pode ser comparada com a camada homônima no padrão MVC. Ela é responsável por apresentar ao usuário as Views e chamar as camadas de dados (Services/Factories) para ligar os dados reais da aplicação, por meio de data binding, à interface gráfica. As controladoras possuem uma variável chamada scope, que possui todas as informações que são necessárias para a criação da View (DRIFTY,2016).
  • Data(Services/Factories): É a camada que se aproxima da camada model do padrão MVC. Encapsula dados da aplicação e provê esses dados, geralmente, por meio de um web service. Essa camada responde às requisições da controladora com os dados a serem utilizados para a criação da View e para serem mostrados para o usuário (DRIFTY,2016).
  • App Configuration: Nesta camada, as controladoras são ligadas às suas interfaces  por meio de rotas. É possível, também, criar rotas padrão, para o caso de não haver nenhuma rota que esteja sendo identificada, o que poderia fazer o sistema quebrar (DRIFTY,2016).
  • Directives: Essa camada serve para especificar comportamentos específicos em elementos de uma página HTML, ou seja, elas são um elemento ou um atributo que podem iniciar um comportamento específico definido pelo programador. É possível, por exemplo, criar uma diretiva para sempre colocar uma imagem padrão caso uma validação retorne um valor falso (DRIFTY,2016)

Ionic cria uma estrutura de diretório para todos os tipos de aplicativos, mencionados abaixo:

Estrutura de Pastas - Ionic.Estrutura de Pastas – Ionic.
Ionic, 2017.

  • hooks são scripts que podem ser acionados durante o processo de construção. Eles são usados para comandos, personalização e para a construção de processos automatizados.
  • platforms esta é a pasta onde Android e iOS dos projetos são criados. É nesta pasta que passaremos grande parte do tempo desenvolvendo.
  • plugins esta pasta contém plugins Cordova. Quando você inicialmente o projeto Ionic alguns dos plugins já serão criados.
  • resources esta pasta é usada para adicionar recursos como ícones e a tela inicial de seu projeto.
  • scsse armazena um arquivo chamado com Sass com alguns padrões do projeto podemos utilizar css para customizar.
  • www é uma pasta de trabalho principal para Ionic. Contém imagens, css, js, index.html, nós passaremos a maior parte nesta pasta desenvolvendo.

APRESENTAÇÃO DA PESQUISA

Durante a pesquisa conduzida, foram encontrados alguns trabalhos relacionados
com o tema abordado por este trabalho, como Prezotto e Boniati (2014) que implementou um aplicativo utilizando a ferramenta multiplataforma Apache Cordova. Concluiu-se que a abordagem multiplataforma não é melhor que a nativa, mas que há situações onde cada abordagem se encaixa melhor. 

Bezerra e Schimiguel (2016) também fez a implementação de um aplicativo utilizando
ferramenta multiplataforma, nesse caso, PhoneGap. Concluiu-se que há a necessidade de avaliar os requisitos da aplicação a ser criada para se tomar a melhor decisão, sobre qual abordagem optar. Cabe ressaltar, no entanto, que ambos os trabalhos não realizaram o desenvolvimento nativo para uma comparação mais precisa entre as duas formas de desenvolvimento tratadas neste trabalho. 

Charland e Leroux (2011) faz um estudo comparativo teórico sobre desenvolvimento
nativo e multiplataforma, no entanto, não faz uma comparação prática entre as duas abordagens. Concluiu-se que o desenvolvimento híbrido é a solução mais provável no embate nativo vs cross, no entanto, há de se avaliar as necessidades da aplicação e do negócio. 

Em Corral, Janes e Remencius (2012), é feito um levantamento sobre potenciais
vantagens e desvantagens da abordagem sob a perspectiva de três stakeholders distintos: Usuário, Desenvolvedor e Provedor de Plataformas. Conclui-se que os usuários são os principais guias do mercado e as suas preferências é que devem definir
o futuro do desenvolvimento móvel. No entanto, não foi feito nenhum estudo prático comparando as duas abordagens alvo deste trabalho. 

Embora a pesquisa tenha revelado que está sendo discutida qual a melhor abordagem para o desenvolvimento móvel, os estudos feitos, em sua maioria, são de três a cinco anos atrás, fazendo-se necessárias novas avaliações do desenvolvimento multiplataforma, devido à evolução das ferramentas e frameworks neste meio tempo. Não foram encontrados trabalhos recentes com a proposta de desenvolvimento de um mesmo app utilizando as duas abordagens, para se ter um comparativo mais embasado das características de cada abordagem, suas vantagens e desvantagens.

DISCUSSÃO DOS RESULTADOS

Este trabalho discutiu dos tipos de desenvolvimento móbile nativo e híbrido, e foi feito um comparativo entre os dois, os mais relevantes são desempenho, curva de aprendizado e reutilização de código. Os resultados obtidos mostraram que a opção híbrida tem a reutilização de código como sua grande vantagem, uma boa curva de aprendizado, apesar de um desempenho geral pior do que o do desenvolvimento nativo.

Assim, conclui-se que o desenvolvimento híbrido através de frameworks multiplataforma são uma boa alternativa quando não se tem condições, sejam estas de conhecimento técnico ou financeiras, de se desenvolver uma única aplicação para várias plataformas.

Os Frameworks discutidos são uma boa opção para desenvolver aplicativos em que os recursos web, somados a recursos de hardware sem necessidade de grande poder de processamento, sejam suficientes. Aplicativos de uma única tela, com banco de dados no lado do cliente, sem necessidade de muita comunicação com o lado servidor, têm a estrutura ideal para este tipo de desenvolvimento. O fato de ser código aberto e 100% gratuita colabora para sua utilização.

Para aplicativos mais complexos, com muitas telas, utilizando banco de dados relacionais e que necessitam de grande comunicação com o servidor, o recomendado é utilizar uma solução que tenha uma performance mais próxima das linguagens nativas.

Os principais benefícios a favor de aplicações híbridas são a redução de custo do desenvolvimento e a complexidade de desenvolver em várias plataformas. Se é preciso desenvolver um app iOS e um app Android, seria necessário provavelmente dois profissionais para atender especificamente cada uma dessas plataformas.

A solução para isso seria ter profissionais web, desenvolvendo soluções hibridas em HTML, CSS e JavaScript. Foram vistos em várias pesquisas feitas que fazer um app nativo é mais complexo e custoso do que outro tipo de software de natureza similar.

Muitas empresas também optam pelo desenvolvimento de app híbrido em situações que não exigem uma alta performance do aplicativo ou quando o público-alvo é heterogêneo. Nesses casos, uma solução mais genérica para ser usada em plataformas variadas se torna mais vantajosa.

Com base nos resultados obtidos, vimos que a escolha do app depende da consideração de alguns fatores fundamentais. Após uma boa avaliação, o aplicativo ideal será aquele que melhor atende às necessidades da empresa e oferece a solução mais adequada.



CONSIDERAÇÕES FINAIS

Este trabalho de conclusão de curso consistiu em abordar os principais frameworks disponíveis, os mais populares, e o papel importante que os mesmos possui em nos auxiliar no desenvolvimento de dispositivos móveis híbridos que tem por finalidade unir um conjunto de linguagens como HTML5, JAVA SCRIPT e CSS com o objetivo de desenvolver aplicações para multiplataformas. 

Foram relatadas as diferenças básicas entre o desenvolvimento nativo e o desenvolvimento híbrido, suas vantagens e suas desvantagens. Conclui-se que juntando as três linguagens mencionada acima é possível desenvolver em um curto prazo aplicativos com grandes recursos e que atendam os principais sistemas operacionais do mercado como iOS, Android e Windows Phone.

Foi dito ainda que cada sistema deve ser analisado e depende de suas características e finalidade para que possamos optar pelo desenvolvimento nativo ou híbrido, porém conforme tabela comparativa podemos observar um ganho quando falamos de prazo, aprendizado e principalmente reutilização de código. O App híbrido é uma alternativa para App Nativo, já que o seu desenvolvimento consiste em um grande aprendizado em linguagens nativas específicas, já o híbrido consiste em linguagens web comuns que vários desenvolvedores já possuem familiaridade. 

Para o usuário final não importa se o aplicativo está rodando nativo ou dentro de um browser, até mesmo pois essa webview não contém componentes característicos de um, como a barra de favoritos e barra de endereço, por exemplo. A webview contém apenas o necessário para que o html, css e javascript funcionem. Levando em consideração o aumento considerável do mercado para dispositivos móveis nos últimos anos, podemos observar que há um futuro promissor no desenvolvimento de dispositivos móveis híbridos e a sua importância para que seja possível acompanhar a demanda, ou melhor a necessidade destes dispositivos dia após dia.

Quanto á limitação da pesquisa as comparações do desenvolvimento nativo X híbrido foram feitas apenas em relação a algumas plataformas IOS, Android e Windows Phone, não sendo possível garantir que os resultados encontrados se apliquem a outras plataformas móbile. Os testes foram realizados em apenas um dispositivo, não garantindo assim que os resultados serão os mesmos, caso os testes sejam efetuados em smartphones de configurações diferentes, sejam melhores ou piores. Por se tratar de um estudo de caso simples, que tinha como objetivo apenas o conhecimento teórico, ainda o desenvolvimento do aplicativo através dos frameworks apresentados não abrangeu a utilização de IDEs nem formas de debug para testes em tempo de execução.

Referências

AAKERD. A.KUMARV.DAYG. S.Pesquisa de marketing: São Paulo: Atlas. 2004. Disponível em: <>. Acesso em: 5 Ago. 2017.

Adobe Systems IncPhoneGap: PhoneGap Build. 2017. Disponível em: <http://phonegap.com/products/#mobile-app-section>. Acesso em: 5 Ago. 2017.

AndroidMeet Android Studio: Android Studio. 2017. Disponível em: <https://developer.android.com/studio/intro/index.html>. Acesso em: 5 Ago. 2017.

Apple Inc.XCode: xCode IDE. 2017. Disponível em: <https://developer.apple.com/xcode/ide/>. Acesso em: 5 Ago. 2017.

BEZERRAP. T.SCHIMIGUELJ.Desenvolvimento de aplicações mobile crossplatform utilizando phonegap.. 2016. Disponível em: <http://eumed.net/cursecon/ecolat/ br/16/phonegap.html>. Acesso em: 5 Ago. 2017.

CEVALLOSE. A.Case Study on Mobile Aplicattions UX. 2014. Disponível em: <http://oa.upm.es/30422/1/EMSE-2014-05_Esteban_Angulo-1.pdf>. Acesso em: 5 Ago. 2017.

CHARLANDA.LEROUXB.Mobile Application Development: Web vs. Native. 2011. 49-53 p. Disponível em: <http://doi.acm.org/10.1145/1941487.1941504>. Acesso em: 5 Ago. 2017.

CORRALL.JANESA.REMENCIUST.Potential Advantages and Disadvantages of Multiplatform Development Frameworks: A Vision on Mobile Environments. 2012. 1202-1207 p. Disponível em: <http://www.sciencedirect.com/science/article/pii/S1877050912005303>. Acesso em: 5 Ago. 2017.

DriftyAbout Ionic: Ionic Compenents. 2016. Disponível em: <http://view.ionic.io>. Acesso em: 5 Ago. 2017.

GILAntonio CarlosComo elaborar projetos de pesquisa: 4ª ed. São Paulo: Atlas. 2002. Disponível em: <>. Acesso em: 5 Ago. 2017.

GOOGLEAngularJS – Superheroic JavaScript MVW Framework. 2017. Disponível em: <https://angularjs.org>. Acesso em: 5 Ago. 2017.

HAMILTONN.The A-Z of Programming Languages: C#. 2008. Disponível em: <http://www.computerworld.com.au/article/261958/a-z_programming_languages_c_/#closeme>. Acesso em: 5 Ago. 2017.

IonicIonic Framework. 2017. Disponível em: <https://ionicframework.com/developers>. Acesso em: 5 Ago. 2017.

MARCOR.How to structure large angularJS applications. 2015. Disponível em: <http://entwicklertagebuch.com/blog/2013/10/how-to-structure-large-angularjsapplications>. Acesso em: 5 Ago. 2017.

MicrosoftVisual Studio: IDE do Visual Studio. 2017. Disponível em: <https://www.visualstudio.com/pt-br/vs/mobile-app-development/>. Acesso em: 5 Ago. 2017.

ORACLEThe History of Java Technology, 2012. 2012. Disponível em: <http://www.oracle.com/technetwork/java/javase/overview/javahistory-index-198355.html>. Acesso em: 5 Ago. 2017.

PREZOTTOE.BONIATIB.Estudo de framework para aplicações híbridas. Disponível em: <http://ezequielprezotto.com.br/eati>. Acesso em: 5 Ago. 2017.

RalucaB.Mobile: Native Apps, Web Apps, and Hybrid Apps. 2013. Disponível em: <https://www.nngroup.com/articles/mobile-native-apps/>. Acesso em: 5 Ago. 2017.

TECHOTOPIAThe History of Objective-C. 2012. Disponível em: <http://www.techotopia.com/index.php/The_History_of_Objective-C>. Acesso em: 5 Ago. 2017.

The jQuery FoundationjQuery: jQuery Móbile. jQuery Móbile. Disponível em: <http://jquerymobile.com>. Acesso em: 3 Abr. 2017.

W3C Recommendation. 2014. Disponível em: < http://www.w3.org/TR/DOM-Level-3- Core/introduction.html>. Acesso em: 5 Ago. 2017.

feito

Use agora o Mettzer em todos
os seus trabalhos acadêmicos

Economize 40% do seu tempo de produção científica