O mundo da tecnologia vive em constante transformação, há algumas décadas a grande maioria dos softwares tinha sua arquitetura baseada em cliente-servidor, após alguns anos com a dominância da Internet estes sistemas foram ultrapassados por aplicativos via Web, que consolidam em um cliente central (o navegador web) todos seus acessos.

A tecnologia do momento é a mobilidade, a era dos Smartphones e suas possibilidades que nos surpreendem a cada dia e nos remete novamente a velha arquitetura cliente-servidor.

Para fornecedores e consumidores de TI esses momentos são críticos, pois exigem um direcionamento estratégico de plataformas, sistemas, produtos e arquiteturas a serem seguidas. São as escolhas de hoje que definirão os esforços de manutenção no futuro, por isso a importância do assunto. A era da mobilidade exige uma atenção especial dos executivos quando se fala de plataforma. No mundo web a diferença está basicamente nos navegadores, com dominância do Internet Explorer e Firefox, que trazem pequenas diferenças para apresentar os sistemas baseados em Web. O mundo mobile é muito mais híbrido e despadronizado, com uma grande variedade de fabricantes de aparelhos e sistemas operacionais. Estamos falando de diversas plataformas – Java, iPhone, Symbian, Blackberry, Android e Windows Mobile para citar as principais, isso sem contar as características de hardware de cada aparelho: com ou sem câmera, com ou sem GPS, Teclado touch ou querty e os mais variados tamanhos e resoluções de telas.

Como orientar seu desenvolvimento e estratégias frente a um mundo com tantas alternativas?

Esse texto não busca orientar que tipo de aparelho ou sistema operacional é o mais indicado para sua empresa, mas irá explicar as diferenças entre as duas arquiteturas mais comuns para aplicações Mobile: via web (HTML) ou com clients específicos para cada plataforma. E para isso vamos apresentar algumas características importantes de cada abordagem.
Performance
Quando falamos de aplicativos client boa parte da aplicação já está carregada no aparelho: a camada visual, imagens, textos padrão, tabelas, enfim, toda a aparência do sistema é fixa no client, o que trafega pela rede são apenas as informações necessárias para popular o aplicativo. Geralmente essas informações são texto simples e trafegam muito rápido pela rede. Em uma abordagem Web, todas as informações necessárias para cada tela devem ser baixadas do servidor para o dispositivo, a cada requisição é necessário download de tudo novamente. Além de ser mais lento, custa mais caro para o usuário, que paga pelo tráfego adicional de dados. Neste quesito, ponto para aplicativos client.

Usabilidade

Apesar dos navegadores para mobile estarem evoluindo rapidamente, o conjunto de recursos da linguagem HTML limitam muito a usabilidade das aplicações baseadas em Web, especialmente quando se fala de interatividade, ainda são poucos e bem restritos os elementos de interface disponíveis para HTML mobile: caixas de seleção e escolha, pop-ups, alertas, tabelas e alguns poucos outros. O ponto principal para adoção ou não de um aplicativo móvel é a usabilidade, eles devem ser extremamente simples, para qualquer usuário acostumado com os recursos do aparelho. Se o usuário tiver alguma dificuldade de uso na primeira tentativa, as possibilidades dele dar uma segunda chance são pequenas. Atenção especial a isso. Usabilidade traz mais um ponto para aplicativos client.

Segurança
As necessidades mais comuns de aplicações corporativas para mobile envolvem de alguma forma expor informações de sistemas internos como: ERP (SAP, Oracle, PeopleSoft, TOTVS), CRM, Intranet e BI para equipes que estão fora do escritório. Você atualmente libera acesso a esses sistemas via Internet para fora de sua rede? Aplicações web mobile devem seguir essa mesma política. Aplicativos client apresentam características de segurança mais interessantes, você tem controle sobre a distribuição – quem usa e instala o aplicativo, as informações podem ser criptografadas para envio e descriptografadas no client e seus sistemas não ficam expostos para toda Internet, apenas os clients terão acesso aos serviços.

PUSH
Um dos grandes aceleradores da mobilidade corporativa foi o email com tecnologia push, que alerta os usuários a cada nova mensagem recebida. Isto é possível devido à arquitetura síncrona de aplicativos client-server, que permitem comunicação de mão dupla: o cliente fala com o servidor e o servidor tem capacidade de se comunicar com cada cliente conectado a ele. O modelo de aplicativos web está baseado na arquitetura request/response, o cliente faz uma requisição, o servidor responde. O sentido inverso não é possível neste modelo.
Push é um recurso exclusivo para aplicativos client.

Recursos do aparelho
A cada dia mais recursos tecnológicos vem equipamento os modelos de smartphones: poderosas câmeras fotográficas e filmadoras, GPS, bússola, tocadores de músicas e vídeo. Com tantas ferramentas disponíveis faz todo sentido utilizá-las integradas a seus aplicativos. A realidade, porém é que apenas aplicações client têm capacidade de interagir com estes de recursos, uma vez que dependem de APIs oferecidas pelos sistemas operacionais para realizar este tipo de integração. Aplicações via web não tem esta capacidade, por limitações da própria linguagem de desenvolvimento e por questões de segurança, que limita o acesso dos navegadores ao sistema operacional. Se você precisa integrar recursos de hardware do aparelho aos seus sistemas, o único caminho é com aplicativos client.

Plataformas de desenvolvimento
Cada sistema operacional – Java, iPhone, Symbian, Blackberry, Android e Windows Mobile tem linguagens e ferramentas de desenvolvimento específicas, isso significa que uma aplicação client desenvolvida para um sistema operacional não funciona em outro. Sim, para cada sistema operacional, uma aplicação! Aplicações web são mais genéricas, todos os sistemas operacionais têm navegadores com capacidade de acessá-las, a variação entre fabricantes e sistemas operacionais é basicamente no tamanho e resolução de telas. Apesar de algumas deficiências, podemos dizer que uma aplicação web funciona para todos dispositivos, e este é seu principal benefício.

Com as explicações acima conseguimos entender um pouco melhor as diferenças entre as duas abordagens, e principalmente compreender algumas características importantes do ambiente de desenvolvimento de aplicações móveis. Decidir qual das duas arquiteturas seguir é o primeiro passo de uma iniciativa de mobilização de aplicativos, e a escolha depende sempre de sua estratégia: quais os objetivos, o público alvo e os resultados esperados pela aplicação? Cruzando isso com o orçamento disponível e as capacidades conhecidas de cada arquitetura, seu projeto tem tudo para ser um sucesso.

 

(*) Fabio Nunes, Sócio fundador e COO da Navita, Fabio é Cientista da Computação e professor de graduação e pós-graduação. Possui expertise de 16 anos no mercado de internet e vem ajudando os clientes da Navita a melhor definir suas estratégias de mobilidade.

Cadastre-se para receber artigos exclusivos Navita.

Por Fabio Nunes*

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *