Por que eu devo ler este artigo:Neste artigo vamos conhecer o Crux Framework, solução nacional e open source construída para o desenvolvimento front-end de aplicações web.

No entanto, antes de nos aprofundarmos no funcionamento e nos conceitos do Crux, analisaremos o que tem sido considerado por muitos como o futuro das aplicações web e então, como o Crux está em sintonia com esta visão.

Em seguida, vamos conhecer um pouco sobre as funcionalidades e a arquitetura do framework, e ao final, será apresentada uma pequena sequência de passos para que você possa aprender de uma forma simples e rápida como desenvolver e executar um projeto Crux.

Antes de desenvolver uma solução web, toda empresa deve avaliar a seguinte pergunta: para onde a web está caminhando? Ao responder esta pergunta, a empresa pode (e deve) convergir a aplicação em construção para este caminho.

Atualmente, dentre as várias tendências na web, vamos destacar duas:

· Aplicações que rodam diretamente no cliente, consultando o servidor apenas quando realmente for necessário, como o Gmail do Google, onde grande parte da sua lógica de controle está no cliente;

· Aplicações multiplataformas e multidispositivos, como aplicativos que têm como requisito serem utilizados por usuários de todo o mundo, como o Google Maps que, por exemplo, pode ser executado em um computador desktop utilizando uma plataforma Linux, bem como em um dispositivo celular utilizando uma plataforma iOS.

Ambas as tendências sinalizam que a web está deixando aquele conceito básico de páginas que rodam somente em um browser desktop e se concentrando em novas plataformas e dispositivos. Agora, não construímos mais páginas web, mas sim aplicativos web! E estes devem ser robustos, portáveis, fáceis de desenvolver e manter.

Diante deste cenário, o Crux Framework provê ferramentas que facilitam ao desenvolvedor trabalhar com estas tendências de forma natural e intuitiva. É um framework construído sobre o GWT (Google Web Toolkit) voltado para acelerar o desenvolvimento do front-end de aplicações web que exigem o máximo de desempenho e que sejam adaptáveis aos diversos tipos de dispositivos existentes.

Crux é um termo em inglês que significa o ponto central de uma argumentação ou um problema muito complexo. No jargão dos esportistas de escalada, “crux” é a parte mais difícil de um percurso.

Esse nome representa muito bem o mesmo, pois a sua proposta é justamente resolver os problemas mais complexos do desenvolvimento de aplicações, oferecendo a seus usuários uma forma simples de transformar ideias em soluções.

Utilizado em grandes empresas dos ramos de Telecom, Saúde, Cosméticos e Auditoria, o Crux oferece um modelo de desenvolvimento que permite escrever o código da camada front-end em Java e XHTML, sendo então compilado para resultar em artefatos JavaScript e HTML, formatos interpretados pelo browser.

Neste momento, vale ressaltar que quaisquer otimizações no código são realizadas em tempo de compilação, o que possibilita gerar um código específico e customizado para cada tipo de dispositivo, como smartphones, tablets, desktops e até TVs.

Como o Crux aborda as tendências da web?

Saber desenvolver aplicações que rodam diretamente no cliente e são multiplataformas e multidispositivos é o diferencial para qualquer empresa de desenvolvimento que deseja se manter no mercado, principalmente no mercado mobile, que está em grande ascensão. Diante desse cenário, veremos a seguir como o Crux lida com estas tendências e como o desenvolvedor pode se nutrir disso para construir suas aplicações.

Aplicações que rodam diretamente no cliente

Esse tipo de aplicação está diretamente relacionado ao que chamamos de rich client, conceito que identifica soluções que possuem grande parte do código executada no cliente.

Tal abordagem permite alguns ganhos bastante significativos, uma vez que desafoga os servidores ao processar informações diretamente no cliente. Como os clientes estão ficando cada vez mais poderosos, esta prática vem se tornando comum.

Outro conceito importante é a utilização de uma Single Page Application (ou aplicação de página única). Esta opção sugere que a aplicação seja renderizada em apenas uma página web, que jamais é recarregada completamente durante as requisições. Para que a atualização do conteúdo ocorra, são utilizadas requisições AJAX, que trazem informações para modificar porções da tela. No caso de uma aplicação onde apenas partes do conteúdo são atualizadas, esta abordagem permite o reaproveitamento de várias estruturas, garantindo um cenário de otimização de recursos e, consequentemente, desempenho.

Esta abordagem é muito promissora, porém também oferece certos desafios. Um deles é que grande parte do conteúdo da página seria trazido de uma vez, o que pode ser um volume grande de dados dependendo do tamanho da aplicação.

No entanto, este é um problema que pode ser contornado através da utilização eficiente e regrada dos recursos a serem trazidos. Por exemplo, se estamos requisitando um recurso de um cliente desktop, não é recomendado trazer do servidor recursos relacionados a um cliente mobile.

O Crux oferece uma maneira simples de tratar este problema, enviando somente o código necessário para o dispositivo. Na seção “A expansão do conceito de design responsivo”, veremos mais informações sobre este assunto.

Se ainda assim o volume de dados for muito grande, pode-se considerar a utilização de cache de recursos, que pode ser habilitado manipulando os cabeçalhos HTTP das requisições. Por fim, caso a busca inicial pelo recurso (antes de ocorrer um cache hit) estiver lenta, a utilização de um CDN (veja o BOX 1) pode resolver o problema de forma definitiva.

BOX 1. CDN

Acrônimo para Content Delivery Network, ...

Quer ler esse conteúdo completo? Tenha acesso completo