Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 7 da Aula 1 - Construindo o alicerce da nossa aplicação

Se nada da nossa aplicação funcionará, se o cliente não suportar javascript. Vale o risco de programar em Angular? Deve-se criar duas aplicações uma para se tiver javascript e outra se não? Acho que não deve ser o caso, então qual o critério para decisão se deve usar Angular ou não?

3 respostas

Olá João.

o uso do AngularJS é recomendado para aplicações baseado em arquitetura SPA (Single Page Application). Ou seja, quando você somente recarregará um conteúdo parcial na página.

Respondendo a sua pergunta "qual o critério para decisão se deve usar Angular ou não?"

R: Recomendo utilizar o AngularJS quando você precisar de uma aplicação completamente assíncrona. Caso você precise fazer apenas pequenas manipulações no DOM, sugiro que utilize o próprio jQuery.

Boa pergunta. Estou no celular, assim que chegar no meu computador respondo. Combinado?

solução!

Oi João, cheguei. Vou tentar responder sua pergunta.

Em que cenário usamos Angular? Há alguns, vamos ver dois deles!

O primeiro é quando você tem diferentes clientes do seu sistema, por exemplo, aplicações em android, IOS e aplicações web. Neste caso, seu backend provê serviços ou mais notadamente API's para serem consumidas por esses clientes. O backend só se preocuparia em criar a API com zero preocupação na camada de visão. Uma aplicação Android ou IOS possuem ferramentas para consumir os dados de um backend, e no caso de uma aplicação web?

Podemos usar ajax e uso pesado de JavaScript, mas o lance é que nesse cenário em que temos uma API, o servidor não guarda estado muito menos há sessão do usuário como estamos acostumados (facilita na escalabilidade da aplicação). Onde guardar o estado da aplicação? No lado do cliente! Fazer isso na munheca (na mão) em uma aplicação web pode não ser tão trivial e o Angular possui serviços e toda uma infraestrutura que possibilita isso. Mas nada impede de você usar Backbone, aurelia, Ember ou usando JavaScript puro para criar essa APP Web, uma SPA.

O outro cenário é em aplicações Híbridas construídas com PhoneGap (http://phonegap.com/), apache cordova (http://phonegap.com/) ou até mesmo o Xamarin (https://xamarin.com/). Nela, usamos HTML, CSS e JS para criarmos aplicações "nativas" para Android, IOS, Blackberry,etc. Nesse caso, o Angular ajudaria bastante, não é à toa que o Ionic (http://ionicframework.com/) usa o Angular para essa finalidade (mesmo ainda com seu novo web client, Angular ainda continua sendo usado).

Nesse dois cenário, quando usamos SPA, nossa aplicação web não recarrega durante o uso, tornando a experiência do usuário melhor.

E se o JavaScript estiver desligado? Nada funcionará, claro. E você tem controle sobre isso? Claro que não. Não há progressive enhancemente (http://blog.caelum.com.br/aplicando-o-progressive-enhancement/). A grande pergunta é: o que ganhou e o que perco com uma SPA (Single Page Application)? Meus ganhos são maiores que minhas perdas? Será que outra alternativa é melhor?

Por incrível que pareça, você já respondeu sua própria pergunta quando perguntou qual critério (cenário, se me permite ajustar sua palavra) seria interessante utilizar SPA. Uma coisa é certa: SPA tem seu espaço, quer queiramos ou não e não dominar esse tipo de tecnologia é estarmos em desvangagem competitiva de quem já a domina. Fico contente de estar cursando esse treinamento.

Consegui tirar sua dúvida? Aguardo seu feedback.