Do que se trata o artigo:

Este artigo visa proporcionar uma leitura objetiva sobre os paradigmas nativo, híbrido e web, aplicados no desenvolvimento de soluções móveis. Através de uma análise de aspectos como consistência e desempenho de plataformas e tecnologias já estabelecidas, bem como de outras mais recentes e muito bem cotadas no cenário de mobilidade, além de aspectos como a disponibilidade de capitais financeiro e humano, convidamos o leitor para uma reflexão sobre a aplicabilidade de cada proposta neste que é um mercado altamente dinâmico e complexo e que vem atraindo um público cada vez mais diversificado.


Em que situação o tema é útil:

Mobilidade é um conceito cada dia mais popular e presente no cotidiano das pessoas e das empresas, encontrando-se em franca expansão em todos os âmbitos. É portanto, imprescindível para o profissional de Tecnologia da Informação, independente de sua área de atuação, que tome contato com as características que cerceiam este universo. Focando exclusivamente em aplicativos móveis, este tema nos leva a uma importante reflexão sobre os pontos mais sensíveis sobre mobilidade nos dias de hoje. Quando, como e onde adotar cada abordagem existente? Afinal de contas, existe melhor ou pior ou tudo é uma questão de ponto de vista?

Resumo DevMan:

Existem, atualmente, três paradigmas principais que norteiam o desenvolvimento de soluções móveis: web, nativo e híbrido. Escolher o melhor é sempre um exercício que exige atenção aos mínimos detalhes, principalmente àqueles que muitas vezes estão escondidos e/ou na ponta final do ecossistema. Faremos, neste artigo, um passeio pelas características fundamentais de cada estratégia, apresentando ao longo do texto um estudo baseado em projetos reais, fechando com um parecer sobre a realidade atual em que nos encontramos, bem como a realidade que entendemos ser a que perdurará pelos próximos anos.

Impressiona o ritmo em que avança a adoção de soluções móveis no mundo. Assim como ocorreu com a web anos atrás, observa-se agora um crescimento vertiginoso do interesse pela mobilização de atividades realizadas dentro das empresas. Para atender a esta demanda, existem atualmente três abordagens principais, e nosso objetivo ao longo deste artigo será, inicialmente, compreendê-las em suas essências, para então passarmos a uma discussão a respeito de vantagens, desvantagens, forças e fraquezas de cada uma e, por fim, filosofarmos acerca de algumas questões fundamentais que devem nortear a decisão de empresas e desenvolvedores no planejamento, na capacitação, no setup e na condução de seus projetos.

A Tabela 1 antecipa, ainda discretamente, os atores que compõem a temática ao longo do texto: os paradigmas nativo, híbrido e web.

Abordagem

Descrição

Nativa

Soluções desenvolvidas exclusivamente para uma plataforma

Web apps

Soluções web desenhadas para serem acessadas via mobile

Híbrida

Soluções que encapsulam conteúdo web em wrappers nativos

Tabela 1. Abordagens existentes para o desenvolvimento de soluções móveis.

Este tem sido um dos mais quentes tópicos de discussão em painéis, grupos de e-mail e fóruns de desenvolvimento móvel nos dias de hoje, e alguns dos principais aspectos que fomentam a polêmica deste tema são: custo final, curva de aprendizado, reutilização, desempenho e experiência de usuário. São aspectos que não encerram toda a questão, mas sem dúvidas protagonizam o enredo. No que tange à plataforma Android, existe ainda outro aspecto de peso que é a fragmentação, que traz desafios que variam para mais ou para menos de acordo com a abordagem escolhida, projeto a projeto.

Todos esses pontos tornam, nos dias de hoje, o mapeamento dos requisitos de um projeto móvel um processo especialmente amplo e delicado. Os pontos de reflexão trazidos mais adiante deverão contribuir para que o leitor – desenvolvedor, gerente de projeto ou mesmo entusiasta – consiga tomar a decisão final a respeito da plataforma e das tecnologias que utilizará em cada proposta que precise desenhar.

Com base nestes fatos, o artigo abordará, inicialmente, as características fundamentais que definem cada uma das três estratégias, trazendo a base de conhecimento mínima para construir um estudo conclusivo ao final desta salutar e conveniente discussão.

Web apps

Web apps, de maneira sucinta e objetiva, nada mais são que aplicações implantadas em um servidor de aplicações (como JBoss e GlassFish) ou container web (como Tomcat, Jetty e outros), desenhadas especificamente para serem acessadas a partir de navegadores de dispositivos móveis, como tablets e smartphones.

Trata-se, assim, de um tipo de solução independente de plataforma, pois todo o seu conteúdo é construído com o emprego de linguagens e tecnologias como PHP, JavaScript, HTML (5), CSS, Java e C#, para não citarmos tantas outras. Sua execução ocorre dentro do contexto de navegadores como Safari, Chrome, Firefox, Opera Mini e outros. Na seção Links é possível encontrar uma lista completa de navegadores móveis disponíveis.

Embora algumas especificações, linguagens e frameworks venham apresentando significativa evolução e já apresentem integração há algum tempo inimaginável com alguns recursos nativos das plataformas móveis mais populares do mercado, ainda não eliminam boa parte das limitações impostas pelos navegadores web (dentre as quais uma das mais polêmicas nos dias de hoje é o da persistência local de dados).

É uma abordagem, portanto, aplicável somente em contextos que não dependam de integração significativa com recursos dos dispositivos nos quais será utilizada, isto é, em situações de uso puramente web.

A Listagem 1 mostra uma página web desenvolvida em HTML5, jQuery Mobile e CSS. Esta página é parte de uma web app implantada em um container web (Apache), disponível aos usuários através da Internet. Acessamos esta página a partir de três navegadores, em três plataformas móveis distintas. Na Figura 1 o acesso é feito a partir de um emulador Android Eclair (versão 2.1 do sistema operacional). Na Figura 2, trata-se de um navegador de um iPad 2 (versão 5.1. do iOS), dispositivo real. Já na Figura 3, estamos utilizando um navegador de um simulador do modelo BlackBerry Curve 8520 (BlackBerry OS 5). Enquanto os dois primeiros baseiam-se no motor de renderização WebKit, o modelo da RIM utiliza-se de um motor denominado Mango (presente nas versões de 4.5 a 5 do BlackBerry OS). Esta diferença pode não ser sensível ao usuário final para aplicativos simples, mas podem variar significativamente quando os aplicativos ganham uma complexidade e uma estrutura maiores.

Web apps são compostas por requisitos normalmente mais evidentes. Como elas têm características essencialmente web, é uma abordagem que se distancia das outras duas pelo fato de não depender de um aplicativo compilado e instalável nos dispositivos, e o acesso a este tipo de solução é basicamente via Internet, em modo totalmente online. Projetos seguindo esta opção envolvem requisitos técnicos que, em linhas gerais, não interseccionam com aqueles exigidos em projetos nativos.

...
Quer ler esse conteúdo completo? Tenha acesso completo