Escolar Documentos
Profissional Documentos
Cultura Documentos
FERRAMENTAS DE
DESENVOLVIMENTO WEB
AULA 6
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 1/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
CONVERSA INICIAL
para
busca de dados atualizados e o processo de integração dessas diferentes partes
da aplicação.
uma informação
estática. Apesar de permitir verificar o fluxo de funcionamento do Angular,
nossa
específicos do Angular.
Vamos criar um ambiente de servidor para alimentar nossa aplicação e
estudar os
mecanismos de comunicação HTTP.
usando os
conceitos de PWA vistos em aulas anteriores.
conteúdo mais
genérico e automatizado. Ele servirá para demonstrar o uso de recursos de
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 2/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
1.1 TEMPLATES
conteúdo assim
que a tela for apresentada ao usuário. Essa possibilidade deixa o HTML mais
arquivos HTML
até formar a aplicação completa (ver Figura 1). Por esse motivo os demais templates
Figura
1 – Vinculação dos templates
1.2 REPETIÇÃO
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 3/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Angular inclui o
atributo “*ngFor”, que vai criar um laço de repetição que multiplicará as tags
HTML
envolvidas. Para testar essa opção, vamos incluir uma estrutura com as
faturas e seus dados principais
a) b)
export
const faturas = [ <ol>
{ <li *ngFor=" let fatura of
lista_faturas">
cod: 1, {{ fatura.empresa }}
empresa: "Empresa de Alcool Gel Ltda", </li>
valor: 2560, </ol>
dt_vencto: "21/06/2020",
c)
dt_pgto: "22/06/2020",
nf: 145
},
{
cod: 2,
empresa: "Transportes SA",
valor: 1680,
dt_vencto: "16/11/2020",
dt_pgto: "16/11/2020",
nf: 1024
},
{
cod: 3,
empresa: "Industria de Cimentos SA",
valor: 8150,
dt_vencto: "14/03/2021",
dt_pgto: "",
nf: 32
},
{
cod: 4,
empresa: "Editora Book Ltda",
valor: 6500,
dt_vencto: "15/07/2020",
dt_pgto: "15/07/2020",
nf: 66
},
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 4/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
{
cod: 5,
empresa: "Restaurante bandejão Eireli",
valor: 977,
dt_vencto: "05/02/2021",
dt_pgto: "",
nf: 233
}
];
No
Quadro 1, em (a) temos os dados que serão utilizados em alguns exemplos. Eles
devem ser
'./faturas';" e depois
associada a uma variável (lista_faturas = faturas;). Ao executar o aplicativo
como
}}” a cada
repetição. O resultado é apresentado em (c).
(fatura.valor) e a utilização de
estilos para a formação das informações.
<ol>
<li *ngFor=" let fatura of
lista_faturas">
Empresa: {{ fatura.empresa }} , valor: <span style="color: blue">{{
fatura.valor }} </span>
</li>
</ol>
Os
templates podem conter também tags de formatação criadas no arquivo
app.component.css,
1.3 DECISÃO
atributo “*ngIf”, que determina se a tag na qual ele se encontra será incluída
na montagem da tela
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 5/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
<ol>
<div
*ngFor=" let fatura of lista_faturas">
<li *ngIf="fatura.dt_pgto!=''">
Empresa: {{
fatura.empresa }} , valor: <span style="color: blue">{{
fatura.valor }} </span>
</li>
</div>
</ol>
No
exemplo do Quadro 3, temos a mesma repetição que mostrará as faturas do array
“lista_faturas”.
Mas, nesse caso, a linha da tag <li> só será incluída caso a condição
usada no “*ngIf”
apresentado anteriormente em
nossos estudos. No Quadro 4, temos nossa tabela de faturas
novamente sendo
apresentada, mas dessa vez as informações estão em um array que pode ter a
quantidade de dados aumentados ou diminuídos sem que seja necessário alterar o template
HTML.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 6/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
No
Quadro 4, as tabelas estão agrupadas conforme a verificação da data de
pagamento. As
No
exemplo do Quadro 5, o conteúdo de fatura.valor passa por um filtro number que
possui
uma indicação (1.2-2) de que o valor conterá pelo menos um valor antes
da casa decimal e um
e anos;
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 7/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
f. PercentPipe:
converte o número em uma string com o sinal de percentual.
Como
padrão, o Angular sempre iniciará com a configuração da região norte-americana “us”.
Por
esse motivo, o uso de filtro nos valores será mostrado com vírgula no
milhar e ponto na casa
decimal.
usuários. Essas
bases podem conter milhares de registros sobre diferentes contextos e tipos de
dados
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 8/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
sistemas. A mesma
base que organiza as notas fiscais de vendas de uma empresa por meio de um
sistema ERP pode ter as informações de faturamento sendo consultados por um
aplicativo de um
Figura
2 – Base de dados centralizada com acessos diversos
Saiba
mais
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 9/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Backend
é um termo muito utilizado para designar as tecnologias que ficam fora do
conhecimento do usuário, mas que dão suporte aos demais sistemas, como base de
dados,
Para
nossa aplicação Angular, para coletar informações de um servidor utilizaremos o
Node.js,
que não serve apenas para executar o utilitário de criação e
manutenção do angular ("ng"). Muitos
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 10/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
];
const server = http.createServer( (req, res) => {
res.statusCode = 200;
var faturas_json = JSON.stringify(
lista_faturas );
//header CORS+json
res.setHeader('Access-Control-Allow-Origin',
'http://localhost:4200');
res.writeHead( 200, { 'Content-Type': 'application/json'} );
res.write( faturas_json
);
console.log( faturas_json );
res.end( );
});
server.listen(port,
hostname, () => {
console.clear();
console.log(`Server running at
http://${hostname}:${port}/`);
});
Com
o código salvo em um arquivo com nome de web.js, por exemplo, podemos executar
o
servidor digitando na linha de comando: “node web.js”. O programa será
executado e mostrará a
objeto
literal lista_faturas em uma string com “JSON.stringify( lista_faturas )”. Na
sequência, ele cria
Ao executar “res.write(
faturas_json )”, os dados são preparados e com “res.end( )” ele é enviado
para
quem solicitou o contato. Um teste pode ser realizado com um navegador,
apontando para
Figura
3 – Resultado do acesso ao servidor HTTP do Node.js
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 11/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
uma flecha “=>” para indicar o bloco da função. Por causa dessa flecha
(arrow, em inglês) esse
2.2 MYSQL
acesso a uma tabela no Mysql, que, por sua vez está instalado no servidor local
(localhost), utilizando
seus campos.
Saiba
mais
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 12/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Tesla,
Airbnb, ebay e Facebook.
Com
o código do Quadro 8, temos o Node.js preparado para executar vários tipos de
solicitações SQL. Mas, apesar de facilmente visualizado o resultado na linha de
comando com o uso
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 13/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
solicitante.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 14/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
});
Com
poucas linhas o código fonte de criação de servidor HTTP acrescentou a consulta
da base
Mysql no momento em que vai processar a solicitação. Por sua vez, assim
que o processamento é
o Mysql é
estabelecida em “con.connect”, ele aciona a função que contém “con.query”, que
aguarda
o processamento e quando chega a resposta ele aciona a função que
preparará os cabeçalhos HTTP
externo (mesmo
que esse acesso leve milissegundos), todo código poderia ter sido executado
antes
de receber aquele primeiro sinal de criação do servidor HTTP.
dispositivo
cliente, temos que ter a opção no JavaScript para esse tipo de acesso remoto.
Saiba
mais
transmissão das
informações via XMLHttpRequest.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 15/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
servidor
para consultar informações, enviar dados coletados de usuários ou enviar
arquivos.
na
pasta src/app e acrescentar no arquivo app.module.ts as linhas do Quadro 10.
import { HttpClientModule
} from '@angular/common/http';
...
imports: [
BrowserModule,
HttpClientModule
],
No
Quadro 11, em (a) temos as linhas a serem acrescentadas ao conteúdo de
“app.component.ts”
para acessar o servidor “http://localhost:3000”. Iniciando com a importação de
OnInit, que vai possibilitar executar alguma ação quando o aplicativo finalizar
seu carregamento. Em
navegador.
a) b)
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 16/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
import { OnInit
} from '@angular/core'; <ol>
import { HttpClient
} from <div *ngFor="let fatura of lista_faturas" >
"@angular/common/http"; <li> {{ fatura.empresa }} - {{ fatura.valor
}} - {{ fatura.dt_vencto }}
</li>
export class AppComponent implements OnInit { </div>
title = 'web'; </ol>
lista_faturas:any = [];
constructor(private http:
HttpClient) { }
getFaturas()
{
const url ='http://localhost:3000';
this.http.get( url
).subscribe( (res)=>{
this.lista_faturas =
res;
console.log(this.lista_faturas );
});
}
ngOnInit() {
this.getFaturas();
}
}
No
Quadro 11, em (b), temos a listagem do arquivo “app.component.html” com uma
lista
apresentar ao
usuário, por vezes será necessário utilizar algum dado informado (ou
selecionado) pelo
para
processamento.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 17/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Angular vai sincronizar o conteúdo com a variável “email”, que também poderá
ser vista no
formulário com o “{{ e-mail }}”. O mesmo será feito com a seleção
usando o tipo radio.
enviado (
[hidden]="!enviado" ). Esse atributo indica que a <div> estará
escondida (hidden) quando o
enviar as informações do
formulário, a condição inverte e a <div> fica visível, mostrando as
variáveis
que foram enviadas para conferência.
Na
Figura 4, temos
a tela construída pelo Angular ao acessar o servidor de teste
(http://localhost:4200).
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 18/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Figura
4 – Tela de notificação de eventos
“app.component.ts”. Em destaque,
as variáveis que vão ser utilizadas para armazenar os dados do
formulário e
como sinalização de envio e, na sequência, a função “envia( )”, que vai ser
processada ao
c. O
outro destaque é a linha que executará o envio das informações (“campos”) para
o
Quadro 13 – Processamento do
formulário de notificação no Angular
title = 'form';
constructor( private http: HttpClient) { }
//-- variaveis do form
propaganda: string = '';
email: string = '';
enviado = false;
envia( ) {
this.enviado = true;
const campos = "email="+this.email+"&propaganda="+this.propaganda ;
const url ='http://localhost:3000';
this.http.post(url ,
campos ).subscribe( );
}
get revisar() {
return
"email="+this.email+"&propaganda="+this.propaganda
}
}
No
fim do código do Quadro 13, temos a função “revisar( )”,
que está na <div> condicional do
acima, as
informações somente serão visíveis quando a variável “enviado” for verdadeira.
vai processar os
dados enviados por meio do método POST do HTTP.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 20/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Neste
código, ao criar a instância do servidor e designar uma função anônima para processar
algum evento na porta 3000, temos a utilização do objeto “request”, que mantém
todas as
associada que por sua vez acrescenta o novo trecho de informação (variável
parte) a variável data.
implementar uma função para solicitar dados personalizados ao servidor com base
em opção
aplicação.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 21/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
das faturas
pagas fora do prazo, no componente adicional. Para cada componente, uma
consulta
diferente ao servidor será necessária. Em uma das consultas será
enviado o mês escolhido pelo
usuário para restringir a busca no banco de dados.
Na Figura 5, temos a visão geral da nossa
proposta.
Figura
5 – Diagrama da aplicação angular com dois componentes
O
layout da aplicação ficará conforme a Figura 6. Na parte principal, temos a
tabela criada com
Bootstrap semelhante à utilizada em outros exemplos. Na parte
superior, será acrescentado um
botão que, ao ser clicado, permitirá escolher o
mês para a consulta.
Figura
6 – Layout da aplicação com dois componentes
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 22/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
(“/listafaturas” ou “/foradoprazo”), o
servidor vai proceder com o acesso ao banco Mysql.
trechos de outros
exemplos:
d. No “app.component.html”
– copiar a tabela de faturas pagas e não pagas apresentada
em aulas anteriores,
acrescentar no início do arquivo a linha “<app-fat-foradoprazo></app-
fat-foradoprazo>”
e proceder aos ajustes exemplificados no Quadro 15.
<tr
*ngIf="fatura.dt_pagto!='0000-00-00'">
<td>{{ fatura.empresa }} </td> No código ao lado, alterar a condição para uma data
<td class="text-right" >
<span style="color: blue;">{{ vazia
padrão do Mysql ("0000-00-00").
fatura.valor | number : '1.2-2'
}}</span> </td> Acrescentar um filtro para a data.
<td> {{ fatura.dt_pagto | date:
'dd/MM/yyyy'}} </td> Proceder com o ajuste nas duas tabelas.
</tr>
E
para deixar a parte do servidor preparada para as consultas, proceder à criação
do código
JavaScript para o Node.js do Quadro 16. Esse código usará a URL como
indicador de qual consulta ao
Mysql será executada: a consulta geral sem
restrição, ou a consulta com o uso do “WHERE”.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 23/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 24/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Após
criado o código do Quadro 16, você deve salvar o arquivo com o nome “app-fat.js”,
por
exemplo, e executar com o comando: “node app-fat.js”.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 25/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
pasta será criada dentro de “app” com os arquivos “.ts”, “.css”, “.html” do
novo componente.
a) "fat-foradoprazo.component.html" Apagar
todo o esqueleto inicial e acrescentar o
<div
class="btn btn-primary btn-icon-split"> código ao lado. Nele foi adicionado
um botão com
<span class="icon text-white-50"> configuração "liga/desliga" do Bootstrap
("collapse").
<i> >> </i> Ao ser clicado ele deixará visível o formulário.
</span>
<button data-toggle="collapse" data-target="#inclui"
class="btn O
formulário possui uma lista de seleção de meses
btn-primary"> que está vinculado a variável
"mes" do TypeScript.
Lista faturas pagas fora do prazo ...
</button> O
resultado da consulta aparecerá apenas quando o
</div> formulário for enviado para o
servidor.
<div
id="inclui" class="collapse">
<div>
<form #mesForm="ngForm" (ngSubmit)="envia()"
class="form-
inline">
<div>
<label for="mes">
Selecione o mês: {{ mes }}
</label>
<select name="mes" [(ngModel)]="mes"
required>
<option value="01">Janeiro</option>
<option value="02">Fevereiro</option>
<option value="03">Março</option>
<option value="04">Abril</option>
<option value="05">Maio</option>
<option value="06">Junho</option>
<option value="07">Julho</option>
<option value="08">Agosto</option>
<option value="09">Setembro</option>
<option value="10">Outubro</option>
<option value="11">Novembro</option>
<option value="12">Dezembro</option>
</select>
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 26/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
<button class="btn btn-primary mx-2" type="submit">
Consulta </button>
</div>
</form>
</div>
<br>
<div style="background-color: lightgray;" [hidden]="!enviado"
class="shadow">
<b>Faturas:</b><br>
<ol>
<div *ngFor="let fatura of
lista_foradoprazo" >
<li> {{ fatura.empresa }} - Data pagto em: <span style="color:
blue;"> {{ fatura.dt_pagto | date :
'dd/MMM/yyyy' }} </span> e
Data de vencto em: <span
style="color: blue;">{{
fatura.dt_vencto
| date : 'dd/MMM/yyyy' }} </span>
</li>
</div>
</ol>
<button class="btn btn-dark btn-sm ml-2"
(click)="enviado=false">Desliga</button>
</div>
</div>
b)
"fat-foradoprazo.component.ts" O
código TypeScript vai criar uma lista
"lista_foradoprazo"
com o resultado da consulta no
import
{ Component, OnInit } from '@angular/core'; servidor.
import
{ HttpClient } from "@angular/common/http";
@Component({ É
enviado a seleção do mês pelo usuário usando o
selector: 'app-fat-foradoprazo', método POST do HTTP.
templateUrl:
'./fat-foradoprazo.component.html',
styleUrls: ['./fat-foradoprazo.component.css'] Ao
receber a resposta por meio da função anônima, a
}) lista é atualizada com o
resultado em formato JSON.
export
class FatForadoprazoComponent implements OnInit {
constructor( private http: HttpClient) { }
mes: string = '';
enviado = false;
lista_foradoprazo: any = [];
envia() {
this.enviado = true;
const campos = "mes="+this.mes ;
const url ='http://localhost:3000/foradoprazo';
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 27/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
this.http.post(url , campos ).subscribe(
(resposta) => {
this.lista_foradoprazo = resposta;
console.log( this.lista_foradoprazo );
},
(erro) => console.log(erro)
);
}
}
Ao
executar a aplicação, temos o resultado na tela, como a sequência apresentada
no Quadro
18.
Ao
clicar no botão “Lista faturas pagas fora do prazo…”, o formulário aparecerá
com a lista de
meses e o botão para enviar a consulta ao servidor.
Ao
receber o resultado do servidor, uma lista com as empresas que tiveram suas
faturas pagas
fora do prazo aparecerá com destaque para o dia de pagamento e
o dia de vencimento,
formatados com o filtro do Angular.
A
nova aplicação reúne os principais tópicos vistos sobre o framework Angular,
que podem
servir como base para uma aplicação real, com componentes, acesso a
um servidor HTTP, consulta a
base de dados e formatação visual usando
Bootstrap.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 28/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
e
nossa aplicação pode ser liberada.
5.2 DESKTOP
Figura
7 – Navegador Chrome com opção de instalação de aplicação PWA
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 29/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Na
Figura 8, um exemplo de nossa aplicação instalada como um aplicativo desktop em
um Linux
Figura
8 – Aplicação desktop instalada via navegador
operacional.
de
endereços privados na rede local permitia que a aplicação Angular fosse
acessada pelo navegador
do dispositivo móvel (ver Quadro 19, com as telas de
acesso no dispositivo Android). Como foi
utilizado o framework Bootstrap, as
informações ficam adaptadas ao tamanho da tela do dispositivo.
Quadro
19 – Telas de acesso a aplicação angular com navegador do sistema Android
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 30/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Contudo,
considerando que o PWA é um aplicativo com forte integração com o sistema
de acesso remoto,
precisamos de um servidor com conexão criptografada (HTTPS).
(site de hospedagem de
código usando o aplicativo “git”), que possui uma opção de consulta de
páginas
com HTTPS. Na Figura 9, temos um repositório chamado webang para hospedar nosso
código e, com a sequência de comandos abaixo, temos a publicação do código no
GitHub:
d. “git
push -u origin main” – envia o código para o repositório remoto.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 31/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Figura
9 – Repositório webang criado no site GitHub
página de acesso ao
projeto, que poderá ser acessada com “https://yankocosta.github.io/webang”.
base-href=/webang/”,
enviando novamente para o repositório com “git commit -a -m "pwa2" e
criando a página de distribuição com “npx gh-pages -d dist/app-fat/”, temos
nosso aplicativo sendo
acessado com HTTPS e poderá ser instalado no Android,
como mostra o Quadro 20.
a) Instalação b) Tela
inicial c)
Listagem de aplicativos
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 32/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
Com
o uso do mecanismo do PWA, temos um aplicativo que pode ser acessado
diretamente
dentro do ambiente do dispositivo móvel ou do desktop como se fosse
uma aplicação independente.
FINALIZANDO
como
ponto de referência para sistemas a serem desenvolvidos com Angular. Contudo,
para o
desenvolvimento de sistemas completos e com mais funcionalidades, outras
características dos
tópicos apresentados nas aulas devem ser aprofundadas. Com
o entendimento proporcionado pelos
configuração,
até juntarmos vários tópicos numa aplicação que permitisse testar a integração
entre
os conceitos.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 33/34
10/09/2021 16:13 UNINTER - FERRAMENTAS DE DESENVOLVIMENTO WEB
REFERÊNCIAS
GETTING started
with service workers. Angular, [S.d.].
Disponível em:
<https://angular.io/guide/service-worker-getting-started>. Acesso em: 28 mar. 2021.
https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/2021/analiseDesenvSistemas/ferramentasDesenvWeb/a6 34/34