Quando começam as discussões na hora de construir um novo site ou nova aplicação empresarial, algumas dúvidas sempre aparecem: quais tecnologias usar, onde hospedar e por aí vai. Uma dessas dúvidas é se deve ser uma SPA (Single Page Application). Se você não tem idéia do que estamos falando, resumidamente, é mostrar todo o conteúdo de uma aplicação em uma única página. Gmail, Trello e Twitter são excelentes exemplos de single page application. Se quiser saber um pouco mais, de uma olhada nesse link da Wikipedia e volte para retornarmos nossa conversa.

Para o desenvolvimento de uma SPA é preciso conhecer alguns frameworks JavaScript específicos como: Angular.JS, Ember.JS, Meteor.JS ou React. Durante um tempo, SPA eram desenvolvidas com jQuery, mas em 2016 não é mais a melhor opção.

Recomendamos que se faça uma SPA quando a aplicação precisa executar muitas tarefas, já que se perde muito tempo em save, quando desenvolvida de outra forma. Além, é claro, em aplicações onde os seus usuários passam um bom tempo e façam muitas interações (novamente, exemplos são ferramentas de trabalho como o Gmail e Trello e redes sociais como o Facebook). Com o avanço de banda, do JavaScript (a linguagem usada para criar SPAs) e dos navegadores, problemas enfrentados anos atrás já não são mais empecilhos.

Apesar de ser um desenvolvimento moderno, que agrada muito ao usuário, que tem uma navegação mais suave, uma SPA tem alguns problemas que precisam ser levados em consideração.

Para começar, SEO. Por ser uma única página que executa todas as ações do usuário, indexação é um grande problema. Já existem soluções no mercado, como o Prerender.io, para resolver isso e o Google anda trabalhando nisso também. Mas serão soluções que estão fora do seu controle e que precisam ser levadas em consideração na hora do custo de desenvolvimento.

Também é preciso levar em consideração que o desenvolvimento é mais complexo. Sendo muito sucinto, quando é feita a escolha por uma Single page application é necessário fazer, quase, 02 projetos separados. Um para o back-end, que irá fornecer as informações, e outro para o front-end, que irá consumir tais informações. Mas, em muitos casos, isso se mostra positivo, já que o desenvolvimento de um APP, por exemplo, se torna mais fácil porque só é preciso desenvolver a API para o APP. O back-end já está preparado para receber essa aplicação.

Quando não desenvolvida com os frameworks corretos, alguns problemas bem básicos podem ocorrer. Entre eles o ctrl+c e ctrl+v e o voltar nos browsers. Usando um dos frameworks que citamos, não é algo que seja preciso de preocupar.

Levando tudo isso em consideração, vamos aos conselhos práticos para o seu negócio:

E-commerces: É preciso pensar com muito cuidado. Não recomendamos na maioria dos casos. O que pode fazer sentido é o uso de algumas partes com módulos usando React, por exemplo, principalmente em partes com muita interação, como um carrinho de compra e a personalização de um item.

Aplicações enterprises (corporativas): Recomendamos e inclusive você pode ler no nosso site sobre o projeto que desenvolvemos para Ticker Car que é uma SPA. Escolhemos fazer dessa forma pois os usuários passam muito tempo interagindo com ela. Como já foi citado antes, a navegação é muito mais fluída e agradável ao usuário, o que resulta em produtividade.

Site institucional: Vai de caso em caso. Nós chegamos a desenvolver como uma SPA, mas se viu que se gastaria muita energia, sendo que existem maneiras mais práticas de resolver o problema. No final, tudo está relacionado à custo/benefício. Para o nosso, não se mostrou uma boa escolha, mas pode ser que funcione muito bem para o seu.

Single page application é uma das melhores soluções quando se fala em navegação e conforto para o usuário. Esse sempre irá preferir interagir com uma SPA do que com qualquer outro tipo de site, mas nem sempre vale a pena desenvolver uma. É preciso colocar na balança se a energia e os recursos gastos vão ajudar a alavancar o seu negócio. É natural do ser humano e das empresas quererem desenvolver o que há de mais moderno e inovador, mas, as vezes, não é necessário tudo isso para desenvolver algo que vai agradar, e muito, o seu usuário.