Publicidade

Anuncios Google

sexta-feira, 19 de setembro de 2014

Introdução a aplicativos híbridos com o Phonegap Parte II

Clique aqui para ler Aplicativos Híbridos Parte 1

Cliente Side Web



Arquitetura de aplicações web no client-side



Aplicações web no client-side podem ser:

Isoladas (dispensando o server-side), possuindo apenas o front-end. 

Exemplo: uma aplicação JavaScript que mostra a hora local nas principais capitais mundiais;

Isoladas (dispensando o server-side), mas possuindo tanto front-end quanto back-end. 

Exemplo: uma aplicação JavaScript de controle de tarefas que armazene os dados no local storage do navegador;


Eduardo Erlo - Durante sua palestra no TchêLinux 2014
Eduardo Erlo TchêLinux  2014
Integradas com o server-side, executando o front-end no client-side e o back-end no server-side. 

O client-side comunica-se com o server-side através de requisições HTTP, cujo formato da resposta é HTML, sendo assim diretamente processada pelo navegador. 





Exemplo: uma tradicional aplicação Struts de controle de entregas;
· Integradas com o server-side, mas agora executando tanto o front-end quanto uma parte do ­back-end no client-side, que se comunica com outro back-end no server-side. 

Aqui, o client-side também se comunica com o server-side através de requisições HTTP, mas o formato da resposta agora é JSON ou XML (pois transmitem apenas dados), sendo processada por um componente do client-side, que então gerará HTML e renderizará no navegador.

As aplicações inteligentes no client-side abordadas neste artigo seguem o quarto cenário apresentado, utilizando o estilo arquitetural REST e o formato de dados JSON.

Aplicações Híbridas

Na grande maioria dos casos, aplicações híbridas trazem a resposta para os desenvolvedores que desejam desenvolver para muitas plataformas, sem grande perda de desempenho. 

Essa abordagem permite ao desenvolvedor criar um núcleo do programa de forma nativa, o que permite que haja um controle sobre as funcionalidades (e pode permitir acesso à dispositivos do smartphone) da aplicação, e, dentro da aplicação, uma parte multiplataforma. 

Isso faz com que, em suma, a experiência do usuário que está utilizando a aplicação em um iOS seja a mesma que um em um Windows Phone, por exemplo, o que é muito importante em grande parte das aplicações.

Essa abordagem híbrida vem ganhando muito destaque nos últimos tempos, pois permite que o desenvolvedor aprenda apenas o básico sobre cada uma das plataformas, uma vez que a parte principal da aplicação será desenvolvida utilizando tecnologias web. 

Porém, novamente, há um porém: a conexão à internet. No caso do iOS, por exemplo, o controle WebView não suporta off-line caching, que serviria para salvar o estado da aplicação e utilizá-la, de alguma forma, sem conexão à internet.


Para finalizar esse artigo, é preciso lembrar de uma palavra chave, que foi discutida ao longo do texto: planejamento. 

Toda aplicação móvel precisa criar algum tipo de experiência com o usuário para ser interessante e utilizável. 

É por isso que as grandes empresas costumam realizar todos os tipos de pesquisas de campo antes de começar o desenvolvimento de qualquer produto. 

Por isso, é preciso sempre pensar no que é melhor para o usuário, antes de pensar no que é melhor para o desenvolvedor. 

Uma aplicação pode ser muito mais simples de ser desenvolvida usando tecnologias web. Porém, se aquele não for o melhor caminho para ela, invariavelmente ela não será um sucesso de vendas.

Aqui, vale um dica importante: coloque em uma planilha tudo que há de mais importante em uma aplicação móvel: interface e experiência do usuário, interoperabilidade, segurança, cosmética, funcionalidade, desenvolvimento, independência de plataforma, acesso a redes sociais, entre outros. 

Tudo o que você conseguir pensar que possa ser importante para a aplicação. Uma vez feito isso, dê uma nota para cada um dos tipos de desenvolvimento: nativo, web e híbrido. A partir desse estudo, é possível ter uma boa ideia do que esperar antes de começar a desenvolver realmente a aplicação.


Hybrid Apps 

No caso destas aplicações, a maior parte das mesmas são desenvolvidas usando padrões de Web e envolvidas numa “Shell” nativa. 

As “shells” permitem acesso a características especificas das plataformas “mobile” tais como GPS, camera, ou a aparência fornecida pelo UI da plataforma, etc

HybridMobArchCompare.png


O diagrama acima mostra a comparação entre os vários tipos de estratégias de desenvolvimento de aplicações e indica a sua aptidão multi-plataforma, crescente da esquerda para a direita.


“Hybrid Apps” combina as vantagens de desenvolvimento de ambos os tipos de aplicações, “Web” e “Native”, e é a melhor escolha para criar aplicações multiplataforma. 

Abaixo estão a vantagens de usar tecnologia hibrida de desenvolvimento de aplicações:


  • Multiplataforma & Partilha de código - “Code” apenas uma vez e usamo-lo para fazer o “deploy” em várias plataformas de dispositivios móveis. Usa o mesmo código de interface “UI” HTLM / third party library code para múltiplos dispositivos.
  • Chamadas nativas usando a “Native Shell”
  • O modo offline permite ter acesso à aplicações mesmo que a internet não se encontre disponível.
  • Permite que um grande número de utilizadores possa obter a aplicação devido ao seu carácter multiplataforma.
  • Pode-se aproveitar o dispositivo móvel para processamento, o que não é possível com aplicações web.
  • Distribuição através da AppStore transmite uma sensação nativa relativamente aos updates (?).
  • Pode-se oferecer notificações relativamente a uma determinada aplicação e seus respectivos updates.

Hybrid-Adv.png
Numa arquitetura multiplataforma usando métodos híbridos, a aplicação é desenvolvida usando tecnologias Web tais como HTML5, Javascript e CSS mas que correm dentro da “Shell” nativa da plataforma Mobile. 

As aplicações hibridas usam um tipo de web control/ web app template para apresentar o Web UI de maneira a que seja possível “codifica-lo” em tecnologias Web. Graças à sofisticação cada vez maior de ferramentas multiplataforma, o desempenho e melhorado drasticamente, e tanto o aspecto como a sensação que temos ao utilizar a aplicação é quase tao bom como ao UI nativo.


Hybrid Server App

Podemos criar uma aplicação Web Mobile, hospeda-la num servidor e simplesmente chamar o url na shell nativa. 
HybridArch.png
Nesta abordagem o processamento será todo feito no servidor. 

Podemos melhorar o desempenho fazer um “local caching”, apesar de não ser o ideal para aplicações cujo desempenho é crítico. 

Mudanças no Deploying serão fáceis pois basta mudar o código e por no servidor. Para criar uma aplicação Hybrid WP8 

usando esta abordagem:
Adicionamos um controle WebBrowser para a página da aplicação e direciona-lo para a aplicação Web hospedada no servidor.

Com isto a nossa aplicação multiplataformas fica instantaneamente pronta.













Links Fontes: 

http://www.devmedia.com.br/aplicacoes-moveis-nativas-ou-web/30392  

http://www.teclogica.com.br/blog/desenvolvimento-para-dispositivos-moveis-nativo-
x-cross-platform/  

http://www.cpgls.ucg.br/7mostra/Artigos/AGRARIAS%20EXATAS%20E%20DA%
20TERRA/Desenvolvimento%20em%20Smartphones%20-%20Aplicativos%20Nativos%20e%20Web.pdf  

http://developer.nokia.com/community/wiki/Arquitetura_de_aplica%C3%A7%C3%B5es
_multiplataforma_para_dispositivos_m%C3%B3veis http://www-03.ibm.com/software/products/pt/category/mobile-application-development http://www.cin.ufpe.br/~tg/2003-1/vaab.PDF  

http://www.devmedia.com.br/turbinando-aplicacoes-com-rest-e-backbone-js/29692  

http://pt.wikipedia.org/wiki/Linguagem_server-side http://tecnologia.terra.com.br/
internet/quotnosso-maior-erro-foi-apostar-em-html5quot-diz-zuckerberg,4b98201fd70ea310VgnCLD200000bbcceb0aRCRD.html  

http://www.midiatismo.com.br/midias-sociais/mark-zuckerberg-fala-sobre-erros-acertos-e-rumores-no-techcrunch-disrupt-sf-2012 http://pt.stackoverflow.com/questions/1630/afinal-phonegap-apache-cordova-realmente-compila-as-aplica%C3%A7%C3%B5es-em-puro-c%C3%B3digo  

http://pt.wikipedia.org/wiki/GitHub

Nenhum comentário:

Postar um comentário