Buscar

aula 5 de ferramentas de desenvolvimento web

Prévia do material em texto

10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 1/27
 
 
 
 
 
 
 
 
 
 
 
 
FERRAMENTAS DE
DESENVOLVIMENTO WEB
AULA 5
 
 
 
 
 
 
 
 
 
Prof. Yanko Costa
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 2/27
CONVERSA INICIAL
Nesta aula, tratamos das características de uma aplicação SPA e sobre bibliotecas e framework,
sendo este último utilizado para desenvolver aplicações SPA: o Angular.
Vamos expor adiante algumas ferramentas utilizadas para criar uma aplicação SPA, alguns
conceitos utilizados no Angular e a variação do JavaScript adotada no seu desenvolvimento,
chamada de TypeScript.
Por último, detalharemos a estrutura do Angular, de modo a entendermos  suas partes principais
e como construir uma aplicação utilizando esse framework.
TEMA 1 – ANGULAR
O Angular iniciou como um projeto pessoal de Miško Hevery para facilitar o trabalho de
designers que não conheciam programação a fazer alterações nas telas das aplicações usando
basicamente HTML. O nome foi baseado nos sinais < e > (angle) utilizados nas suas tags (NG-CONF,
2014).
Sua primeira versão se chamava AngularJS e foi desenvolvida e mantida pelo Google até o
desenvolvimento da nova versão. Atualmente ainda é mantida, mas com suporte limitado para
questões relacionadas à segurança (Long Term Support) até 31 de dezembro de 2021 (Angular,
2021d).
Desde seu início, o AngularJS foi desenvolvido em JavaScript para ser utilizado no lado cliente
(Angular, 2021b). Com a versão 2.0, o AngularJS foi totalmente reescrito e passou a ser chamado
somente de Angular; passou também a ser desenvolvido utilizando TypeScript como linguagem
padrão.
Uma aplicação Angular necessita ser compilada, e por meio dessa compilação é gerado um
código JavaScript que pode ser executado diretamente pelos navegadores.
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 3/27
1.1 MEAN (MONGODB, EXPRESS.JS, ANGULAR, E NODE.JS)
Com o maior uso do JavaScript no desenvolvimento de aplicações web e a possibilidade de se
criar também código JavaScript no lado do servidor, aumentou a utilização de cenários em que a
aplicação seria toda escrita nessa linguagem, desde a parte cliente até o código utilizado no servidor.
Esse cenário tem sido chamado de MEAN, indicado pela primeira letra das tecnologias
normalmente utilizadas para a construção dessas aplicações (MongoDB, ExpressJS, Angular, NodeJS).
A Figura Erro: Origem da referência não encontrada a seguir apresenta um diagrama que mostra
onde essas tecnologias são utilizadas.
Figura 1 – Diagrama cliente-servidor com Angular
Crédito: o autor.
As tecnologias têm o seguinte objetivo (>IBM, 2019).
a. MongoDB: base de dados NoSQL open-source que utiliza uma estrutura semelhante ao
JSON para armazenar os dados.
b. ExpressJS: framework que possibilita o desenvolvimento de aplicação no servidor usando
NodeJS.
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 4/27
c. NodeJS: ferramenta que possibilita a execução de JavaScript fora do ambiente de um
navegador (será detalhado mais adiante).
d. Angular: framework que possibilita o desenvolvimento de aplicações SPA.
1.2 PERSONALIZAÇÃO DE TAGS
Quando um navegador encontra uma tag que não está na referência padrão, ele a ignora e tenta
apresentar o conteúdo de alguma maneira, inclusive essa é a orientação da especificação do HTML
(HTML Standard, 2021). O conteúdo pode ser apresentado e não gerar confusão no layout da página
ou a informação pode ser ignorada. De qualquer forma, o navegador não interrompe a exibição do
conteúdo com um erro.
No entanto, com a utilização do JavaScript, tags personalizadas podem ser criadas, bem como
constar no DOM e terem atributos e funcionalidades específicas (Custom HTML, 2021).
Quadro 1 – Criando uma tag
Fonte: o autor.
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 5/27
No exemplo do Quadro 1 anterior, em (b) a classe “novaTag” está herdando as características do
objeto “HTMLElement” e, com isso, torna-se um elemento válido no documento. A função
“connectedCallback()” é executada assim que o elemento é anexado no documento.
Para construir uma tag personalizada válida, seu nome deve ter mais de uma palavra com um
traço.
Esse tipo de tag personalizada é utilizada pelo Angular ao definir pontos do documento HTML
que terão informações dinâmicas.
TEMA 2 – CONTROLE DE INTERFACE
Ao desenvolver uma aplicação SPA, o navegador é que executa a aplicação no lado cliente,
solicitando dados quando necessário. Isso quer dizer que é no lado cliente que são feitas as
verificações sobre a navegação entre as opções (menus), a forma de atualização dos dados, o
processamento e a análise da entrada de dados pelo usuário. O servidor centraliza os dados, mas não
é ele que gerencia o fluxo da aplicação.
Ao desenvolver a interface de aplicação com o usuário, o desenvolvedor vai utilizar alguns
modelos de organização dos fluxos que estarão mais aderentes ao cenário que se propõe, seja
usando um framework ou não.
2.1 MODEL VIEW CONTROLLER (MVC)
O Model View Controller – MVC (ou “Modelo, Visão e Controlador”) é uma forma de organizar o
código de maneira a separar a parte visual que será apresentada ao usuário do restante do código da
aplicação, de forma que, ao fazer ajustes na visualização das informações ou do layout da tela, o
impacto no restante do código da aplicação seja o mínimo.
O padrão MVC propõe que o código seja organizado com base em três grupos (Matos; Zabot,
2020, p. 196; martinFowler.com, 2006).
1. O model (“modelo”) reúne o código utilizado para processar as regras principais do
programa. É a parte do aplicativo que vai executar as funcionalidades a que o sistema se
propõe.
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 6/27
2. O view (“visão”) é a parte do aplicativo que formatará os dados para visualização do
usuário. Os componentes visuais (botões, menus, formulários, figuras) serão exibidos nessa
parte do padrão MVC.
3. O controler (“controlador”) é a parte do código que recebe os dados que o usuário
selecionou, digitou ou clicou na interface e encaminha para a parte do aplicativo que vai
processar a informação. O controlador vai decidir se apresenta algo na tela (view) ou executa
uma função (model).
No caso de desenvolvimento web, considerando que a parte visual é montada com HTML, o
MVC adiciona mais uma vantagem que é a possibilidade de um designer web (que não conhece
programação) poder trabalhar no layout HTML e no desenvolvimento de opções visuais sem interferir
na codificação.
Figura 2 – Diagrama do padrão MVC em uma aplicação web
Fonte: adaptado de Matos; Zabot, 2020, p. 196. Crédito: Victor Metelskiy/Shutterstock.
Em um fluxo normal de trabalho em grandes sistemas, se a parte visual estiver integrada com o
código que vai executar as funções da aplicação, uma mudança de layout, ajuste em componentes
gráficos ou adaptação de cores e figuras teria que ser executada por um desenvolvedor, podendo
interferir nas funcionalidades da aplicação.
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 7/27
O Angular incluinovas tags HTML que são usadas para chamar partes do framework e criam um
isolamento entre a apresentação (view) e os demais trechos do framework (Quadro 2).
Quadro 2 – HTML inicial da aplicação Angular
Fonte: o autor.
No Quadro 2 anterior, temos um exemplo de um HTML que está separado da aplicação, mas ao
mesmo tempo conecta a parte visual (HTML) ao restante do framework por meio de um mecanismo
interno que interpreta a nova tag e associa um código JavaScript para o navegador executar.
2.2 INVERSÃO DE CONTROLE
As primeiras interfaces de sistemas eram executadas em um fluxo em que o programa exibia
uma questão para o usuário, o usuário respondia e, com base no tipo de resposta do usuário, o
programa executava algum procedimento. O programa é que controlava cada etapa da execução.
Quando temos um código que está separado das funcionalidades que estão sendo
desenvolvidas para a aplicação, e que chama essas funcionalidades por meio da estrutura montada
para gerenciar a execução dos códigos, estamos invertendo o controle de execução
(martinFowler.com, 2004; 2005).
Quadro 3 – Fluxo de controle normal e invertido
a) b)
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 8/27
Fonte: o autor. Crédito: Victor Metelskiy/Shutterstock.
A inversão de controle (IoC, em inglês) é uma das características fundamentais dos frameworks
de aplicações (martinFowler.com, 2004). Os frameworks representam uma estrutura básica para o
desenvolvimento dos sistemas, em que o desenvolvedor vai acrescentando trechos de código
específicos da aplicação e o framework gerencia a execução desses códigos.
Uma forma de inversão de controle é conhecida como injeção de dependência (Dependency
Injection), em que os códigos a serem executados são chamados por um objeto controlador,
deixando a aplicação mais genérica (martinFowler.com, 2004).
O framework Angular utiliza a injeção de dependência para combinar os códigos desenvolvidos
com o esqueleto do framework.
2.3 ROUTER (“ROTEADOR”)
A navegação entre as telas dos sistemas web deve ser estruturada de forma que o usuário possa
clicar em um link e o sistema apresenta a tela ou executa o procedimento correspondente. Para isso,
os frameworks implementam mecanismos genéricos em que essa relação de link e tela possam ser
configurados pelos desenvolvedores.
Quadro 4 – Exemplo de rota no Angular
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 9/27
Fonte: o autor.
No Angular, o módulo de roteamento (router) possibilita que o desenvolvedor crie um tipo de
lista de páginas que cada link deve executar (Angular, 2021c). Dessa forma, o framework tem uma
estrutura de navegação que pode ser utilizada para diferentes sistemas, como mostra o Quadro 4
anterior, que em a mostra o HTML com o link, e em b mostra a definição do fluxo (o componente
“listaFaturasPendentes” que será executado).
TEMA 3 – AMBIENTE DE DESENVOLVIMENTO ANGULAR
Para a utilização do framework Angular, algumas ferramentas podem ser usadas para maior
produtividade do desenvolvedor. Entre essas ferramentas, temos o editor de código e um executor
de código em linha de comando.
3.1 EXTENSÕES VSC
O Visual Studio Code foi citado em momento anterior como a opção a ser utilizada para a
codificação dos programas. Além das funcionalidades gerais de um editor especializado para
programação, como colorização do código com base na sintaxe da linguagem ou indentação
automatizada, o VSC tem a possibilidade de estender suas características.
Para acrescentar funções dentro do editor, extensões podem ser instaladas e o VSC tem um
mecanismo de pesquisa e exibição de extensões, como mostra a Figura Erro: Origem da referência
não encontrada a seguir.
Figura 3 – Lista de extensões e exibição da extensão Angular Snippets
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 10/27
Crédito: Visual Studio Code, 2021.
Na Figura Erro: Origem da referência não encontrada anterior, na lateral esquerda, há uma lista
de extensões que contém o texto “snip”, e na parte direita, as informações da primeira extensão. A
extensão pode ser instalada ao clicarmos no pequeno botão “Install” em verde tanto na lista lateral
esquerda quanto na área direita com as informações.
Ao instalar a extensão, suas funções ficam disponíveis para o usuário do editor e, se for
relacionada com a digitação de código, a extensão pode influenciar a cada termo digitado do
programa. Um exemplo é a extensão, mostrada na Figura Erro: Origem da referência não encontrada
anterior, em execução, cujo resultado é visualizado na Figura Erro: Origem da referência não
encontrada a seguir. Essa extensão apresenta alternativas de trechos de códigos (snippets) por meio
da digitação de um termo pré-configurado. Assim, o desenvolvedor não precisa lembrar de toda a
sintaxe do comando da linguagem ou, nesse caso, do framework Angular. Na Figura Erro: Origem da
referência não encontrada a seguir, ao começar a digitar “a-ngfo” vai aparecendo um quadro
flutuante em são apresentadas as opções, que vão atualizando conforme mais letras vão sendo
digitadas. Ao teclar “Enter”, a extensão inclui no editor o trecho completo da opção escolhida. O
desenvolvedor pode então alterar e adaptar o trecho sem necessitar pesquisar em outros arquivos ou
na internet.
Figura 4 – Uso da extensão com snippets de código Angular
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 11/27
Crédito: Angular Snippets, 2021.
Existem vários tipos de extensões com diferentes propósitos. Não somente relacionadas a
linguagens específicas como a do Angular exemplificada anteriormente. Existem extensões para
facilitar ou adaptar o editor ao que o desenvolvedor está acostumado, por exemplo, a extensão
“Vim”, que adapta o VSC para os atalhos do editor “Vim”, muito utilizado por quem usa o sistema
Linux.
3.2 NODEJS
O NodeJS é uma aplicação que suporta a execução do JavaScript fora do navegador, podendo
ser utilizado para executar os programas escritos nessa linguagem em um servidor ou diretamente
no sistema operacional do desktop (ou dispositivo mobile), e usa o mesmo executor JavaScript do
navegador Chrome (Matos; Zabot, 2020, p. 23; NodeJS, 2021).
Após sua instalação, seja no ambiente servidor ou no desktop, o NodeJS pode executar um
arquivo JavaScript ou ser utilizado diretamente no terminal, da mesma forma que o console do
navegador que foi utilizado em momentos anteriores. Na Figura Erro: Origem da referência não
encontrada a seguir, vejamos a execução de um exemplo apresentado em um momento anterior, que
tinha sido executada no navegador, mas agora utilizando o comando “node” para habilitar um
prompt que executou as expressões e comandos do JavaScript digitadas diretamente no terminal (a
mesma situação pode ser executada usando o “cmd” do Windows).
Figura 5 – Executando JavaScript com o NodeJS no terminal Linux
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 12/27
Fonte: o autor.
No desenvolvimento de projetos utilizando o Angular, o NodeJS é utilizado como uma
ferramenta de produtividade e possibilita a execução de comandos utilitários do Angular no terminal,
facilitando a criação, o desenvolvimento e a manutenção de aplicações.
3.2.1 COMANDOS NG
Para trabalhar com o framework Angular, algumas tarefas burocráticas são necessárias e trechos
de código padrão devem ser criados para que o frameworkpossa ser inicializado. Uma estrutura de
pastas deve ser criada, componentes devem ser registrados e o mecanismo de navegação deve ser
atualizado.
São várias tarefas que não estão relacionadas ao desenvolvimento das funcionalidades da
aplicação e que, se fossem feitas manualmente, seria um tempo a mais não dedicados à
programação dessas funcionalidades.
Para auxiliar o desenvolvedor nessas tarefas foi criado o Angular CLI, que é uma ferramenta
utilizada para automatizar grande parte das atividades relacionadas ao framework. Para instalar basta
utilizar o comando “npm install -g @angular/cli”. O “npm” é o gerenciador de pacotes do NodeJS e
faz o download do programa, bem como verifica suas dependências.
Após instalado o comando “ng”, este fica disponível para o desenvolvedor, que poderá
configurar um novo projeto de uma aplicação angular (“ng new meu-proj”), compilar a aplicação para
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 13/27
distribuir ("ng build meu-proj") ou testar a aplicação em desenvolvimento iniciando um servidor de
teste ("ng serve") (Angular, 2021a).
Caso o leitor não esteja acostumado com o uso de linha de comando dentro do sistema
operacional, a configuração do Angular, assim como muitos comandos que auxiliam na estruturação
da aplicação, são facilmente utilizados na linha de comando. Inclusive é uma prática muito comum,
nas referências e documentações sobre o Angular, os exemplos serem apresentados com o uso dos
comandos no prompt (seja do Windows ou Linux) para a construção de aplicações.
O próprio VSC tem um terminal incorporado para executar comandos diretamente dentro do
editor.
Figura 6 – Editor VSC com terminal
Crédito: Visual Studio Code, 2021.
Nesse terminal, exibido na Figura Erro: Origem da referência não encontrada anterior, podem ser
digitados os comandos utilitários do Angular CLI (“ng”) ou outros comandos (os mesmos comandos
do Windows ao usar o “cmd”, ou do Linux usando o “Shell”) que possam auxiliar na interação com o
sistema operacional ou testes.
TEMA 4 – TYPESCRIPT
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 14/27
O TypeScript é uma linguagem baseada em uma adaptação do JavaScript feita pela Microsoft
para adicionar tipos estáticos, cujo código é convertido para JavaScript após passar por um
compilador (Typescriptlang, 2021).
Quando os tipos são declarados, é possível que sejam detectados erros que antes eram
absorvidos pela linguagem, por exemplo, quando há um erro de digitação no nome de uma variável
usada em outras partes do programa e que acaba se tornando uma “nova” variável naquele trecho
do JavaScript, como pode ser visto no Quadro 5 a seguir.
Quadro 5 – Erro em JavaScript
Fonte: o autor.
Como o TypeScript “acrescenta” opções na linguagem JavaScript, os códigos preexistentes em
JavaScript podem ser incorporados no código TypeScript e, apesar de erros de tipos serem exibidos
na compilação, a execução não é interrompida por esse motivo (Typescriptlang, 2021).
4.1 TIPOS
Os mesmos tipos usados em JavaScript podem ser declarados em TypeScript: boolean, number,
string e array. Alguns tipos são acrescentados no TypeScript e facilitam a identificação de erros de
interpretação no momento de associar valores.
Na Figura Erro: Origem da referência não encontrada a seguir, pode ser verificado como é a
sintaxe do TypeScript na declaração do tipo das variáveis. Nesse exemplo, foram usadas as mesmas
variáveis sobre JavaScript utilizadas em momento anterior para demonstrar a diferença entre as duas
linguagens.
Figura 7 – Declaração de tipos de variáveis em TypeScript
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 15/27
Fonte: o autor.
Na Figura Erro: Origem da referência não encontrada anterior, também é mostrado como é
interpretada a associação de um tipo diferente daquele que foi declarado no início do código. A
variável “impostos” fica grifada indicando um problema, e ao passar o mouse por cima é apresentada
uma janela com a indicação de que o “tipo string não pode ser associado a um tipo number”.
4.1 CLASSES
Com a possibilidade de declarar tipos, alguns conceitos de orientação a objetos são reforçados
como o encapsulamento, que pode receber um atributo “private” e evitar o acesso externo à variável
de uma classe sem autorização (TYPESCRIPT, 2021).
No TypeScript, a declaração de tipos auxilia na definição dos parâmetros usados nos
construtores da classe ou nas propriedades das classes. Também são acrescentados as novas sintaxes
ECMAScript relacionadas à orientação a objetos assim que elas são aprovadas, podendo coexistir
com a sintaxe já existente do TypeScript, como é o caso no exemplo da declaração de acesso privado
do campo “#nome_propriedade” (sendo implementado no JavaScript) e “private
nome_propriedade” (já disponível em TypeScript).
TEMA 5 – ESTRUTURA ANGULAR
Para trabalhar com o framework Angular, vamos integrar todos os conceitos, tecnologias e
linguagens que foram apresentados em momentos anteriores desde a instalação, usando NodeJS, a
estruturação do projeto, usando MVC, e com HTML, CSS e TypeScript no view utilizando orientação a
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 16/27
objetos, executando os testes usando servidor e enviando a aplicação SPA para o navegador por
meio do HTTP, editando nosso código no VSC.
Toda a tecnologia utilizada no desenvolvimento precisa ser empacotada e traduzida para um
arquivo HTML, que contém a formatação visual do CSS e código JavaScript, e que depois será
enviada para o navegador do usuário (Figura Erro: Origem da referência não encontrada).
Figura 8 – Diagrama da aplicação SPA com Angular e envio para o cliente
Crédito: o autor.
Para compreender melhor a organização utilizada pelo Angular, vamos iniciar pela separação de
pastas e arquivos básicos do esqueleto utilizado como referência para o desenvolvimento da
aplicação.
Com a sequência mostrada no Quadro 6 a seguir, teremos uma aplicação padrão montada pela
ferramenta “ng”, que poderá servir para demonstração. Nesse Quadro 6, são mostradas as perguntas
feitas pela ferramenta para configurar o projeto sendo criado e estão relacionadas a: a) utilização de
checagem mais rígidas nos tipos; b) inclusão de roteamento de páginas; e c) tipo de formato de CSS
a ser utilizado.
Quadro 6 – Criando uma aplicação Angular
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 17/27
Fonte: o autor.
Nesses primeiros testes com o Angular, utilizaremos o padrão (N, N e CSS, respectivamente)
como respostas para as perguntas do “ng new” para tornar a aplicação didaticamente mais simples. À
medida que o conhecimento sobre o Angular vai amadurecendo e as necessidades da aplicação
forem maiores, o desenvolvedor pode avaliar a possibilidade de alterações.
Ao finalizar a criação da estrutura, bibliotecas e configurações necessárias para o uso do
framework, a aplicação mínima conterá a estrutura mostrada no Quadro 7 a seguir, e poderá ser
evoluída acrescentando funcionalidades específicas (Angular, 2021 e).
Quadro 7 – Estrutura de referência para aplicação SPA Angular
A estrutura de pastas da aplicação “aula” construída pelo
comando “ng” e mostrada na lateral do editor VSC lista o
esqueleto básico e que pode ser testado diretamente para
apresentar uma tela de teste.
 
Na pasta “src”, temos a aplicação em si, ou seja,os códigos
usados para construir a aplicação e onde o desenvolvedor
vai trabalhar diretamente.
 
Na pasta “node_modules”, temos alguns pacotes
necessários ao framework Angular e alguns pacotes de uso
frequente em aplicações. Ainda, podem ser instalados
pacotes de terceiros utilizando a ferramenta “npm”.
Inicialmente, essa pasta contém mais de 39.000 arquivos.
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 18/27
 
Todos os pacotes devem estar registrados no arquivo
“package.json”.
Fonte: o autor. Crédito: TypeScript, 2021.
O termo componente (component) no Angular é utilizado para encapsular os arquivos que vão
apresentar um trecho visual na tela para o usuário (relacionado com o conceito “view” do MVC). Uma
aplicação angular pode apresentar na tela vários componentes como é mostrado na Figura Erro:
Origem da referência não encontrada a seguir.
Figura 9 – Aplicação Angular e seus componentes
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 19/27
Fonte: o autor.
No desenvolvimento dos componentes, estes podem aparecer na mesma tela ou serem
chamados conforme é estruturada a navegação entre as telas (lembrando que tela é o que o usuário
visualiza quando os itens são redesenhados. Como é uma aplicação SPA, a navegação ocorre na
mesma página HTML e os itens que são apresentados já estão no navegador).
Ao criar um projeto novo, apenas um componente é gerado e o desenvolvedor vai montando
sua aplicação, acrescentando novos componentes.
5.1 ALTERANDO O PADRÃO INICIAL
Para testar a aplicação básica criada e exemplificar como ela pode ser adaptada para nossas
necessidades, vamos fazer uma pequena modificação na tela de boas-vindas e exibir no navegador o
resultado. Em primeiro lugar, vamos para a pasta “src” e, em seguida, para a pasta “app” (Quadro 8).
Quadro >8 – Pasta “app” e o componente inicial
A pasta “src” tem o arquivo “index.html”, que é o início da
aplicação. Ele está praticamente vazio, tendo apenas a tag
personalizada “<app-root></app-root>”, que por sua vez
vai chamar o componente principal.
O componente principal está na pasta “app” e é composto
por um arquivo HTML (app.component.html), um CSS
(app.component.css) e um ćodigo TypeScript
(app.component.ts). Essa pasta também tem um arquivo
“app.componet.spec.ts” para testes e um “app.module.ts”
que mantêm um registro de todos os componentes
necessários para compor a aplicação.
Fonte: o autor. Crédito: TypeScript, 2021.
A aplicação Angular inicia com o “index.html”, com a tag “<app-root>” que é processada no
componente principal “app.component.ts” como mostra o Quadro 9 a seguir.
Quadro 9 – Integração do “index.html” com “app.component.ts”
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 20/27
Fonte: o autor.
O conteúdo da nossa modificação, portanto, deverá ser incluído no “app.component.html”, e se
for necessário criar algum estilo CSS específico para esse conteúdo, podemos também incluir a
formatação no “app.component.css”.
Quanto à informação que queremos apresentar para teste, vamos reaproveitá-la de um dos
trechos usados em momento anterior. No arquivo “app.component.html”, devemos apagar todo o
seu conteúdo e incluir a pequena tabela de “Faturas pagas” e “Faturas em aberto” mostrada no
Quadro 10 a seguir.
Quadro 10 – Tabela de faturas
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 21/27
Fonte: o autor.
Com o arquivo “app.component.html” modificado, temos que compilar nossa aplicação,
armazená-la em um servidor e enviá-la para um navegador quando ele solicitar via URL o site. Esse é
o processo de distribuição de uma aplicação SPA.
5.2 TESTANDO A APLICAÇÃO ANGULAR
Para facilitar os testes, o comando “ng” do Angular apresenta uma opção “serve” que automatiza
a compilação e inicia a execução de um servidor de teste, que já disponibiliza a aplicação compilada.
Para iniciar a compilação, devemos entrar na linha de comando, na pasta de nossa aplicação “aula” e
digitar o comando “ng serve”, e então aguardar a mensagem do Quadro 11 a seguir.
Quadro 11 – Compilação da aplicação Angular
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 22/27
Fonte: o autor.
Após finalizar a compilação na tela, o servidor será executado. Basta o desenvolvedor colocar na
área de endereço do navegador a URL de teste “http://localhos:4200” que aparecerá o resultado
como o mostrado na Figura Erro: Origem da referência não encontrada a seguir.
Figura 10 – Aplicação SPA Angular com tabela de faturas
Fonte: o autor.
Como o leitor poderá observar, o resultado apresentado não é o mesmo verificado em momento
anterior. Isso porque anteriormente era exemplificado a formatação do HTML utilizando o framework
Bootstrap. Vamos, então, incluir o Bootstrap em nossa aplicação de teste, acrescentando ao conteúdo
do Quadro 12 (o mesmo utilizado em momento anterior), no “<head>” do arquivo “index.html” que
está na pasta inicial de nosso projeto “aula”.
Quadro 12 – Links para inclusão do Bootstrap na aplicação Angular
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 23/27
Fonte: o autor.
Após cancelar a execução do servidor de teste, executa-se novamente o comando “ng serve” e a
compilação será refeita, com a disponibilização do mesmo endereço de teste. O novo resultado pode
ser verificado na Figura Erro: Origem da referência não encontrada a seguir.
Figura 11 – Tabela de faturas formatadas com Bootstrap
Fonte: o autor.
Ao verificar o código fonte recebido pelo navegador (Quadro 13), o desenvolvedor poderá
verificar que todos os itens apresentados durante o desenvolvimento do projeto “aula” (HTML, CSS,
TS) ficaram resumidos em uma linha de chamada para um arquivo CSS (“styles.css”) e quatro
chamadas de arquivos JavaScript (“runtime.js”, “polyfills.js”, “vendor.js”, “main.js”). O restante do
arquivo “index.html” trata de tags básicas e a chamada do Bootstrap.
Quadro 13 – Código fonte HTML do aplicativo SPA Angular (aula)
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 24/27
Fonte: o autor.
Todo esse processo utilizado até o momento com o framework Angular parece um trabalho
muito grande para mostrar algo que em momento anterior também foi feito usando HTML e
Bootstrap.
No entanto, o que foi mostrado até o momento foram conteúdos estáticos, e para isso não é
necessário programação. Ao se entender o funcionamento do Angular, poderemos desenvolver uma
aplicação mais dinâmica, típica de uma aplicação web. Vamos também conhecer algumas novas tags
e atributos do Angular que vão possibilitar a criação de listas automatizadas e formulários dinâmicos,
com pesquisa de dados no servidor remoto. Em momentos futuros, verificaremos estes tópicos finais.
FINALIZANDO
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 25/27
Após apresentar os fundamentos da programação web em momentos anteriores, nesta aula o
foco foi o entendimento e uso do framework Angular. Para atingir esse objetivo, iniciamos com a
explicação sobre os conceitosutilizados no Angular, como a personalização de tags HTML, que
possibilitam criar pontos de acesso a procedimentos diretamente do documento HTML. O conceito
MVC de estruturação de aplicação para a separação da parte visual do restante do código foi
abordado, assim como o formato invertido de controle da navegação, utilizados pelos frameworks de
aplicação.
Para o Angular, foi descrito como é o processo de navegação das páginas por meio dos links
digitados ou clicados na aplicação e que pode ser generalizado com base no conceito de
roteamento.
Nesta aula, também foi abordado o uso de extensões no editor VSC que podem auxiliar na
programação, usando o Angular, e como o NodeJS desenvolve um papel importante ao suportar a
criação e execução de utilitários como o “ng”, que é utilizado para criar e ajustar os projetos usando
o Angular.
Na nova versão do Angular, uma versão do JavaScript chamada de TypeScript foi adotada como
padrão para o desenvolvimento dos componentes usados nas aplicações. O TypeScript possibilita
definir os tipos das variáveis, o que pode ser utilizado no processo de compilação e verificação de
sintaxe, auxiliando na descoberta de possíveis erros nas aplicações.
Ao final, a criação de um projeto básico de teste por meio da utilização de ferramentas vistas
anteriormente, e da união dos conhecimentos adquiridos em momentos anteriores, possibilitou
percorrer todo o processo de criação, alteração e teste de uma pequena aplicação SPA em um
servidor temporário.
REFERÊNCIAS
Angular Snippets. In: Extensions for the Visual Studio family of products. Visual Studio
Marketplace. Disponível em: <https://marketplace.visualstudio.com/ 
search?
term=%22Angular%20Snippets%22&target=VSCode&category=All%20categories&sortBy=Relevanc
e>. Acesso em 30 abr. 2021
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 26/27
CLASSES. TypeScript, 27 abr. 2021. Disponível em: <https://www.typescriptlang. 
org/docs/handbook/classes.html>. Acesso em: 27 abr. 2021.
CLI Overview and Command Reference. Angular. Disponível em: <https:// 
angular.io/cli#cli-overview-and-command-reference>. Acesso em: 27 abr. 2021a.
CUSTOM elements. HTML Standard, 27 abr. 2021. Disponível em: <https://html. 
spec.whatwg.org/multipage/custom-elements.html#custom-elements>. Acesso em: 27 abr. 2021.
FAQ. Angular. Disponível em: <https://docs.angularjs.org/misc/faq>. Acesso em: 27 abr. 2021b.
GUI Architectures. martinFowler.com, Jul. 18, 2006. Disponível em:
<https://martinfowler.com/eaaDev/uiArchs.html>. Acesso em: 27 abr. 2021.
HTML. HTML Standard. Disponível em: <https://html.spec.whatwg.org/multipage/ 
infrastructure.html#extensibility-0>. Acesso em: 27 abr. 2021.
MEAN Stack. IBM, May 9, 2019. Disponível em: <https://www.ibm.com/cloud/ 
learn/mean-stack-explained>. Acesso em: 30 abr. 2021.
IN-APP navigation: routing to views. Angular. Disponível em:
<https://angular.io/guide/router#in-app-navigation-routing-to-views>. Acesso em: 30 abr. 2021c.
INVERSIONOFCONTROL. martinFowler.com, Jun. 26, 2005. Disponível em:
<https://martinfowler.com/bliki/InversionOfControl.html>. Acesso em: 27 abr. 2021.
INVERSION of Control Containers and the Dependency Injection pattern. martinFowler.com,
Jan. 23, 2004. Disponível em: <https://www.martin 
fowler.com/articles/injection.html>. Acesso em: 27 abr. 2021.
MATOS, E.; ZABOT, D. Aplicativos com Bootstrap e Angular: como desenvolver apps
responsivos. São Paulo: Saraiva, 2020.
MIŠKO Hevery and Brad Green – Keynote – NG-Conf 2014. ng-conf, 16 jan. 2014. Disponível em:
<https://www.youtube.com/watch?v=r1A1VR0ibIQ>. Acesso em: 27 abr. 2021.
TYPESCRIPTLANG. What is TypeScript? Disponível em: <https://www. 
typescriptlang.org/>. Acesso em: 27 abr. 2021.
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a5 27/27
VERSION Support Status. Angular. Disponível em: <https://docs.angularjs. 
org/misc/version-support-status>. Acesso em: 27 abr. 2021d.
VISUAL Studio Code. Disponível em: <https://code.visualstudio.com/>. Acesso em: 30 abr. 2021
WORKSPACE and project file structure. Angular. Disponível em: <https://angular.io/guide/file-
structure>. Acesso em: 27 abr. 2021e.

Continue navegando