Prévia do material em texto
Técnico em Desenvolvimento de Sistemas Programação em Novas Tecnologias (Web) Witalo Diego Matias Nunes https://etepac.com/ https://www.instagram.com/etepacead/ https://www.youtube.com/c/EDUCAPE Curso Técnico em Desenvolvimento de Sistemas Programação em Novas Tecnologias (Web) Witalo Diego Matias Nunes Escola Técnica Estadual Professor Antônio Carlos Gomes da Costa Educação a Distância Recife 1.ed. | fevereiro 2024 Secretária de Educação e Esportes de Pernambuco Ivaneide de Farias Dantas Secretária-executiva de Educação Integral e Profissional Ana Cristina Cerqueira Dias Gerente-geral de Educação Profissional Maria do Socorro Rodrigues dos Santos Gestora de Educação a Distância Ana Pernambuco de Souza Equipe de Gestão ETEPAC Arnaldo Luiz da Silva Junior Gustavo Henrique Tavares Ribeiro Maria do Rosário Costa Cordouro de Vasconcelos Professor Autor Witalo Diego Matias Nunes Revisão Witalo Diego Matias Nunes Coordenação de Curso José Américo Teixeira de Barros Coordenação Design Educacional Hugo Cavalcanti Design Educacional Fábia Barbosa Helisangela Maria Andrade Ferreira Jailson Miranda José Eilton dos Santos Costa Raissa Saldanha Lima Pinto Washington Ferreira Wilma Cavalcante Diagramação Washington Ferreira da Silva Catalogação e Normalização Hugo Cavalcanti (Crb-4 2129) Sumário Introdução ................................................................................................................................... 7 1.Competência 01 | : Reconhecer os fundamentos da Web ........................................................... 8 1.1 A história da web ........................................................................................................................................8 1.2 Como funciona a Web .................................................................................................................................8 1.3 A web nos dias de hoje ............................................................................................................................ 13 1.4 Segurança da Web ................................................................................................................................... 14 1.4.1 Criptografia ........................................................................................................................................... 14 1.4.2 Autenticação e Autorização .................................................................................................................. 15 1.4.3 Proteção contra Ataques ...................................................................................................................... 15 1.4.4 Atualizações de Segurança .................................................................................................................... 15 1.4.5 Segurança em Camadas (Defense in Depth) ......................................................................................... 15 1.4.6 Privacidade dos Dados .......................................................................................................................... 16 1.4.7 Educação e Conscientização ................................................................................................................. 16 1.5 Tecnologias Emergentes .......................................................................................................................... 16 1.5.1 Inteligência Artificial (IA) ....................................................................................................................... 16 1.5.2 Realidade Virtual (VR) e Realidade Aumentada (AR) ............................................................................ 17 1.5.3 Internet das Coisas (IoT) ....................................................................................................................... 17 1.5.4 Blockchain ............................................................................................................................................. 17 1.5.5 Computação em Nuvem (Cloud Computing) ........................................................................................ 17 2.Competência 02 | Preparar o ambiente de desenvolvimento Web ........................................... 19 2.1 Introdução ao desenvolvimento web ...................................................................................................... 19 2.2 Editores de texto ...................................................................................................................................... 20 2.2.1 Principais características dos editores de texto .................................................................................... 21 2.3 Ambiente de desenvolvimento integrado IDE ......................................................................................... 22 2.3.1 Visual Studio (VS) .................................................................................................................................. 22 2.3.2 IntelliJ IDEA............................................................................................................................................ 22 2.3.3 Eclipse ................................................................................................................................................... 22 2.3.4 NetBeans ............................................................................................................................................... 23 2.3.5 PyCharm ................................................................................................................................................ 23 2.3.6 Sublime Text .......................................................................................................................................... 23 2.3.7 Por que escolher uma IDE? ................................................................................................................... 23 2.4 Ferramentas de Debugging e Inspeção .................................................................................................... 24 2.5 Ferramentas de Gerenciamento de Pacotes ........................................................................................... 24 2.6 Servidores Locais e Ambientes de Testes ................................................................................................ 25 2.7 Extensões e Plugins .................................................................................................................................. 25 2.8 Controle de Versão e Colaboração .......................................................................................................... 26 2.8.1 Sistemas de Controle de Versão ........................................................................................................... 26 2.8.1.1 Git ....................................................................................................................................................... 26 2.9 Colaboração e Plataformas de Desenvolvimento .................................................................................... 27 2.9.1 GitHub ................................................................................................................................................... 27 2.9.2 GitLab .................................................................................................................................................... 27 3.Competência 03 | Identificar a linguagem HTML5 .................................................................... 28 3.1 O que é HTML? .........................................................................................................................................28 3.2 Fundamentos do HTML ............................................................................................................................ 29 3.3 Estrutura básica do HTML ........................................................................................................................ 30 3.4 Metadados em HTML ............................................................................................................................... 32 3.5 O HTML 5 .................................................................................................................................................. 33 3.5.1 Simplificação e Clareza .......................................................................................................................... 33 3.5.2 Foco na Semântica ................................................................................................................................ 34 3.5.3 Suporte à Diversidade de Dispositivos .................................................................................................. 34 3.5.4 Eliminação de Dependências em Plugins .............................................................................................. 34 3.5.5 Interatividade e API JavaScript .............................................................................................................. 35 3.5.6 Padrões Abertos e Acessibilidade ......................................................................................................... 35 3.6 Estrutura do HTML 5 ................................................................................................................................ 35 3.6.1 Elementos estruturais principais do HTML5 ......................................................................................... 35 3.7 Semântica no HTML5 ............................................................................................................................... 36 3.7.1 Vantagens da Semântica ....................................................................................................................... 36 3.7.2 Elementos Semânticos .......................................................................................................................... 37 3.8 Formulários aprimorados HTML5 ............................................................................................................ 38 3.8.1 Elementos de formulários aprimorados ............................................................................................... 38 3.8.2 Validação de formulário ........................................................................................................................ 39 3.9 Multimídia e gráficos em HTML5 ............................................................................................................. 41 3.9.1 Multimídia ............................................................................................................................................. 41 3.9.2 Gráficos ................................................................................................................................................. 42 3.10 Geolocalização e armazenamento em HTML5 ...................................................................................... 43 3.10.1 Geolocalização .................................................................................................................................... 43 3.10.2 Armazenamento Local ........................................................................................................................ 44 3.11 O futuro do HTML5 ................................................................................................................................ 44 4.Competência 04 | Identificar a linguagem CSS3 ........................................................................ 46 4.1 História do CSS ......................................................................................................................................... 46 4.1.2 CSS1 e CSS2 ........................................................................................................................................... 47 4.1.3 Enfim o CSS3 ......................................................................................................................................... 47 4.2 Sintaxe Básica do CSS ............................................................................................................................... 48 4.2.1 Seletores CSS3 ....................................................................................................................................... 49 4.3.2 Sombras CSS .......................................................................................................................................... 51 4.3.3 Transformações 2D e 3D ....................................................................................................................... 51 4.3.4 Transições CSS3 ..................................................................................................................................... 51 4.3.5 Animações CSS3 .................................................................................................................................... 52 4.3.6 Fontes da Web (Web Fonts) ................................................................................................................. 52 4.3.7 Flexbox e Grid Layout ............................................................................................................................ 52 4.3.8 Filtros CSS .............................................................................................................................................. 53 4.3.9 Variáveis CSS ......................................................................................................................................... 53 4.3.10 Texto Multicoluna ............................................................................................................................... 54 4.4 Layout Responsivo ................................................................................................................................... 54 4.4.1 Media Queries ....................................................................................................................................... 54 4.4.2 Largura da Tela e Layouts Responsivos ................................................................................................. 55 4.4.3 Orientação da Tela e Dispositivos Móveis ............................................................................................ 56 4.5 Boas Práticas de Desenvolvimento CSS3 ................................................................................................. 57 4.5.1 Mantenha seu CSS Organizado ............................................................................................................. 57 4.6 Exemplos práticos e estudo de caso em CSS3 ......................................................................................... 59 4.6.1 Exemplo 1: Layout Responsivo.............................................................................................................. 59 4.6.2 Exemplo 2: Animações e Transições ..................................................................................................... 61 4.6.3 Exemplo 5: Uso de Fontes Web e Ícones Personalizados ..................................................................... 62 5. Competência 05| Desenvolver um projeto nas linguagens HTML5 e CSS3 ................................ 65 5.1 Planejamento e Estruturação do Projeto ................................................................................................. 65 5.1.1 Definição do Propósito do Site ..............................................................................................................65 5.1.2 Levantamento de Requisitos e Conteúdo ............................................................................................. 65 5.1.3 Hierarquia de Navegação e Arquitetura de Informação ....................................................................... 66 5.2.1 Codificação em HTML5 e Estruturação do Conteúdo ........................................................................... 68 5.3.1 Página inicial (index.html) ..................................................................................................................... 71 5.3.2 Páginas da sessão de conteúdo ............................................................................................................ 72 5.3.3 Páginas de Galerias e Portfólio ............................................................................................................. 75 5.3.4 Páginas de notícias ................................................................................................................................ 77 5.3.5 Página de Formulário de Contato ......................................................................................................... 79 5.3.6 Página Sobre Nós ................................................................................................................................. 80 Conclusão................................................................................................................................... 83 Referências ................................................................................................................................ 84 Minicurrículo do Professor ......................................................................................................... 85 7 Introdução Olá, Estudante! Antes de começar esta disciplina, quero te fazer uma pergunta: O que você pensa sobre a internet para os próximos 10 anos? Pois bem! Esta pergunta é um tanto quanto pretensiosa, certo? Confesso que também acho. Quando analisamos a linha do tempo da evolução da internet, podemos entender que dos primórdios até os dias de hoje, muitas mudanças radicais aconteceram. Portanto, pode ser difícil prever o que ocorrerá em uma década. Há 50 anos, os principais meios de comunicação via sistemas eram o telégrafo e o telefone. Os computadores já existiam, mas eram máquinas gigantescas, desenvolvidas inicialmente para realizar cálculos e armazenar dados. Neste tempo os EUA e a União Soviética, personagens da Guerra Fria, travaram um conflito político-ideológico e por conta deste evento, os americanos buscaram maneiras de proteger suas informações e comunicações. Deste modo, um ano após o lançamento do satélite russo Sputnik 1, nasceu a DARPA (Defense Advanced Research Projects Agency). Esta agência, criada por militares e pesquisadores norte-americanos, têm até hoje o papel de fazer investimentos essenciais em tecnologias inovadoras para a segurança nacional. Dentre estas tecnologias, temos a nossa querida Internet. Mas você sabe o que é a Internet e quais são as novas tecnologias disponíveis atualmente? Nesta disciplina você irá conhecer um pouco deste assunto, entendendo o seu funcionamento e suas tecnologias mais recentes. Vamos começar? 8 1.Competência 01 | : Reconhecer os fundamentos da Web Olá, estudante! Seja bem-vindo à primeira Unidade da nossa disciplina. Nesta unidade você irá conhecer um pouco de história e dos fundamentos da web, ou seja, irá entender como a web funciona. Vamos nessa? 1.1 A história da web A história da web tem sua origem em um momento um pouco mais remoto do que convencionalmente as pessoas conhecem e acredita-se que tudo começou no final da década de 60, quando já havia pequenas demonstrações de que era possível a troca de informações entre computadores. No entanto, em 1990, Tim Berners-Lee criou a World Wide Web (web). Timothy, seu primeiro nome, é um físico britânico, cientista da computação e professor do MIT (Massachusetts Institute of Technology) e atualmente, diretor da W3C (World Wide Web Consortium). Porém, antes de Tim conceber a web, dois caras tiveram um papel crucial, sendo Vinton Cerf e Bob Kahn. Eles foram responsáveis por criar protocolos de comunicação, utilizados pelos computadores para que pudesse ocorrer a troca de informações. Estes protocolos são fundamentais para a comunicação entre máquinas computacionais e a partir de então a web pôde se constituir. Ao longo deste e-book conversaremos um pouco mais sobre isso. Legal, não é mesmo? Já aqui no Brasil, a história da web é um pouquinho mais recente. Com a chegada da internet em escala comercial em 1995 e um ano depois com a chegada dos provedores, o serviço começou as suas operações e deslanchou com a popularização dos computadores domésticos. Hoje, o NIC.br (Núcleo de Informação e Coordenação ponto BR), estima que 142 milhões de brasileiros acessam a web diariamente. 1.2 Como funciona a Web 9 Para entender a Web, é preciso entender primeiro um pouco de como funcionam os computadores. Os computadores são máquinas modernas e que possuem alto poder de processamento. Com estas é possível efetuar cálculos, criar imagens incríveis e passear virtualmente pelo mundo. Por mais incrível que pareça, cada uma dessas tarefas é resultado de uma sucessão de zeros e uns. Você pode estar pensando, como assim? Lembre-se de que os computadores são na sua essência máquinas binárias, produzindo resultados através do sistema binário. Deste modo, para nós humanos seria muito difícil enviar instruções e receber resultados desta forma, afinal, não temos a mesma capacidade de processamento de um computador. Por isso, um conjunto de códigos específicos foram criados, facilitando a nossa comunicação com o computador. Este conjunto composto de palavras, símbolos e regras é a linguagem de programação. Esta linguagem é usada para criar diversas aplicações, mas isso exige conhecimento específico e ao mesmo tempo amplo, pois a falta de visão geral das tecnologias e protocolos envolvidos neste processo comprometem o seu desenvolvimento. Veja na imagem abaixo a ilustração deste contexto: DICA IMPORTANTE: Que tal pesquisar um pouco mais sobre o importante consórcio W3C? https://w3c.br/sobre-o-w3c/ Conheça o sistema binário: https://blog.betrybe.com/tecnologia/codigo-binario/ https://w3c.br/sobre-o-w3c/ https://blog.betrybe.com/tecnologia/codigo-binario/ https://blog.betrybe.com/tecnologia/codigo-binario/ 10 Figura 1 Exemplo de tecnologias ligadas ao desenvolvimento web Fonte: SW Agência Descrição: Notebook ao centro representando o ambiente desenvolvimento e ao seu redor, balões coloridos com diversas tecnologias ligadas ao desenvolvimento web (PHP, JAVA, JS, .NET, XML, DATABASE...). Você percebeu como é importante entender um pouco mais sobre os computadores? Agora que você conhece um pouco mais sobre este assunto, explicarei como a Web funciona, realmente. Para compreender melhor, vamos fazer uma analogia, ou seja, imagine que a Web é uma rodovia onde em um dos extremos temos o cliente e no outro extremo, o servidor. O cliente é um dispositivo eletrônico que se comunica com servidor, como por exemplo, o smartphone e o servidor, um computador que armazena sites, arquivos e dados. Na prática, o usuário utiliza o dispositivo para requisitar alguma informação e o servidor responde. Veja a figura 2 abaixo: 11 Figura 2 Fluxograma de solicitação e resposta entre cliente e servidor Fonte: autor Descrição: Um círculo à esquerda com a palavra “cliente” em seu centro e outro círculo à direita com a palavra “servidor” ao centro. Os círculos estão interligados com duas setas, sendo da esquerda para a direita a solicitação e da direita para a esquerda, a resposta. Noentanto, para que a comunicação aconteça nesta estrada (web), é preciso respeitar algumas regras e entender que outras coisas muito importantes são necessárias, a começar pela conexão com a internet. A conexão permite que dados sejam enviados e recebidos entre os dispositivos, havendo interação e comunicação. E para que esta comunicação aconteça de forma correta, é preciso respeitar algumas regras, como já dito anteriormente. Certo, quais são as regras? As regras são mais conhecidas em termos técnicos como protocolos, que definem como os dados trafegam pela web. Neste sentido, o conjunto de protocolos mais importante é o TCP/IP (protocolo de controle de transmissão/protocolo de internet). Mas não é só isto. Outros protocolos importantes estão envolvidos na transmissão de dados na web e para entender mais, convido você a estudar o material do link abaixo. Bacana, não é mesmo? A Web de fato é um mundo fascinante e repleto de detalhes. Daí eu lhe faço uma outra pergunta: O que acontece quando digitamos uma URL (Uniform Resource Locator), ou seja, um endereço no navegador web? Acesse o link abaixo: https://developer.mozilla.org/pt- BR/docs/Learn/Getting_started_with_the_web/How_the_Web_works https://developer.mozilla.org/pt-BR/docs/Learn/Getting_started_with_the_web/How_the_Web_works https://developer.mozilla.org/pt-BR/docs/Learn/Getting_started_with_the_web/How_the_Web_works 12 Para responder a esta pergunta, acesse o fórum da Unidade 1 do nosso AVA e poste a sua resposta, combinado? Neste fórum iremos discutir em conjunto com os outros colegas e professores. Pois bem. Para ajudar um pouco na construção desta resposta, analise a figura 3 abaixo. Figura 3 - Funcionamento da requisição de uma página web Fonte: www.devmedia.com.br Descrição: Usuário representado por um avatar, acessa uma página web através do navegador em um computador e o servidor encontra a página solicitada, retornando à informação após interpretar a solicitação. Perceba que o usuário acessa um link no navegador. Em seguida, o browser entende a solicitação feita e envia ao servidor. Este encontra a página solicitada e processa a informação, transmitindo de volta para o navegador. Desta forma, o usuário recebe a informação solicitada na tela do computador. Bem, há de concordar que ao menos em tese, o funcionamento da web é perfeitamente compreensível, apesar da complexidade técnica envolvida, certo? Deste modo, explore o último tópico desta Unidade, pois será discutido um assunto muito importante que é a web nos dias de hoje. 13 1.3 A web nos dias de hoje Nos tópicos anteriores foi visto um pouco da história, do funcionamento e dos métodos envolvidos relativos à existência da web. Já neste tópico, serão explorados temas acerca da web nos dias de hoje, onde será identificado versões da web e suas funcionalidades. Também será discutido um pouco do que o futuro reserva para os usuários da web. Neste sentido, deixando um pouco do passado para trás e retomando o uso da web no início dos anos 2000, surgiu a Web 2.0, caracterizada pela existência das redes sociais, onde os usuários geram conteúdo, marcando uma mudança muito importante na rede mundial de computadores, deixando as páginas estáticas de lado e dando vezes as páginas dinâmicas. Páginas dinâmicas são aquelas em que os usuários as usam de forma interativa, havendo “diálogo” entre as partes. Um exemplo clássico desta relação é a postagem de um conteúdo em uma mídia social, permitindo likes e comentários. Mas o que são páginas estáticas? Estas páginas são formatos de conteúdo fixo, que não se moldam em relação ao usuário e que não fornecem ferramentas interativas. Apesar de serem simples, estas páginas ainda são bastante utilizadas na web para fornecer conteúdo informativo onde não exija interação, como por exemplo, sites institucionais. Ainda sobre a web 2.0, além das redes sociais, outras ferramentas dinâmicas foram desenvolvidas, como blogs e wikis. Os blogs são plataformas destinadas à publicação de conteúdos, com todo o aparato administrativo que possibilita ao próprio usuário gerenciar todo o serviço. Já os wikis, são coleções de páginas interligadas, onde cada uma delas pode ser visitada e editada, garantindo uma participação colaborativa. A Wikipédia é sem dúvida a maior representante wiki que se conhece. Na sequência, surge a Web 3.0. 14 1.4 Segurança da Web A segurança na web é uma preocupação crucial, dado o aumento das atividades online e a dependência cada vez maior da internet. Diversos desafios e ameaças surgem constantemente, exigindo medidas robustas para proteger informações sensíveis, dados pessoais e sistemas. Deste modo, é preciso entender alguns aspectos essenciais da segurança da web, concorda? 1.4.1 Criptografia A criptografia desempenha um papel fundamental na segurança online. Ela é usada para proteger a comunicação entre um navegador e um servidor. Protocolos como o SSL (Secure Sockets Layer) e o TLS (Transport Layer Security) garantem que os dados transmitidos sejam codificados e seguros contra interceptação por terceiros. Quer conhecer a web 3.0? Acesse este link: https://mittechreview.com.br/nao-e-mais-sobre-o-futuro- da-web-3-0-ela-ja-esta-entre-nos/ Atenção! Estude os materiais complementares no AVA, pois algumas questões da Atividade da Unidade serão baseadas neles. https://mittechreview.com.br/nao-e-mais-sobre-o-futuro-da-web-3-0-ela-ja-esta-entre-nos/ https://mittechreview.com.br/nao-e-mais-sobre-o-futuro-da-web-3-0-ela-ja-esta-entre-nos/ 15 1.4.2 Autenticação e Autorização Mecanismos de autenticação, como senhas fortes, autenticação de dois fatores (2FA), biometria e certificados digitais, ajudam a garantir que apenas usuários autorizados tenham acesso a determinados recursos ou informações. Já a autorização controla o que os usuários autenticados podem fazer dentro de um sistema. 1.4.3 Proteção contra Ataques Diversas técnicas são empregadas para proteger contra ataques cibernéticos, incluindo firewalls, sistemas de detecção e prevenção de intrusões (IDS/IPS), anti-malware e antivírus. Estes mecanismos visam evitar ou detectar atividades maliciosas e proteger os sistemas contra invasões. 1.4.4 Atualizações de Segurança Manter sistemas e softwares atualizados é crucial para garantir a segurança. Atualizações frequentes corrigem vulnerabilidades conhecidas e melhoram a resiliência contra ameaças emergentes. Isso se aplica não apenas aos sistemas operacionais, mas também a aplicativos, plugins e softwares de terceiros. 1.4.5 Segurança em Camadas (Defense in Depth) A abordagem de segurança em camadas envolve a implementação de várias medidas de segurança em diferentes níveis do sistema. Isso cria barreiras adicionais para os invasores, uma vez que, mesmo se uma camada for comprometida, outras camadas de defesa permanecem intactas. 16 1.4.6 Privacidade dos Dados A proteção da privacidade dos dados é essencial. A conformidade com regulamentos, como o GDPR (Regulamento Geral de Proteção de Dados) na União Europeia e LGPD (Lei Geral de Proteção de Dados Pessoais) no Brasil, exigem que as organizações coletem, processem e armazenem dados pessoais de forma segura e transparente, respeitando os direitos de privacidade dos indivíduos. 1.4.7 Educação e Conscientização A educação e a conscientização dos usuários são fundamentais para a segurança na web. Treinamentos sobre boas práticas de segurança, como evitar phishing, senhas fortes, cuidados ao compartilhar informações pessoais e identificação de possíveis ameaças, são essenciais para reduzir o risco de violações de segurança. Desta forma, é fácil entender que a segurança na web é um esforço contínuo que exige a implementaçãode medidas proativas e a adaptação constante às ameaças em evolução. Com a crescente interconectividade, é fundamental que indivíduos e organizações priorizem a segurança online para proteger informações críticas e garantir uma experiência segura na internet. 1.5 Tecnologias Emergentes As tecnologias emergentes moldam e transformam constantemente o cenário da web e da computação, impactando diversos setores e revolucionando a forma como interagimos com a tecnologia. Portanto, serão exploradas a seguir as tecnologias emergentes mais significativas. 1.5.1 Inteligência Artificial (IA) A Inteligência Artificial envolve a criação de sistemas que podem aprender, raciocinar, e executar tarefas de forma autônoma. Algoritmos de machine learning e deep learning, juntamente 17 com redes neurais artificiais, permitem que a IA seja aplicada em reconhecimento de padrões, assistentes virtuais, diagnósticos médicos, automação de processos, entre outros. 1.5.2 Realidade Virtual (VR) e Realidade Aumentada (AR) A Realidade Virtual (VR) cria um ambiente completamente simulado, enquanto a Realidade Aumentada (AR) sobrepõe elementos virtuais ao ambiente físico. Ambas têm aplicações em jogos, educação, treinamento, design industrial e experiências imersivas. 1.5.3 Internet das Coisas (IoT) A Internet das Coisas se refere à conexão de dispositivos físicos à internet, permitindo a troca de dados e automação de tarefas. Isso inclui desde eletrodomésticos inteligentes até sistemas industriais, desencadeando avanços em casas inteligentes, cidades inteligentes e indústria 4.0. 1.5.4 Blockchain O Blockchain é uma tecnologia de registro distribuído que oferece um sistema seguro e descentralizado para transações. É conhecido principalmente pelo uso em criptomoedas, como o Bitcoin, mas possui aplicações em contratos inteligentes, votação eletrônica, cadeias de suprimentos e muito mais. 1.5.5 Computação em Nuvem (Cloud Computing) Embora não seja mais tão "emergente", a computação em nuvem continua a evoluir, oferecendo maior escalabilidade, flexibilidade e acessibilidade. Serviços de nuvem como AWS, Azure e Google Cloud estão impulsionando inovações em IA, análise de dados, armazenamento e desenvolvimento de aplicativos. 18 Então, caro estudante, diante dessas explanações sobre tecnologias emergentes, foque na próxima Unidade e entenda como preparar um ambiente de desenvolvimento web. 19 2.Competência 02 | Preparar o ambiente de desenvolvimento Web Nesta segunda Unidade você irá entender como preparar o ambiente de desenvolvimento web, focando inicialmente nas linguagens HTML e CSS. No entanto, o ambiente que aqui será estudado poderá atender a outras linguagens de desenvolvimento, abrindo espaço para novos horizontes no mundo da programação para a web. 2.1 Introdução ao desenvolvimento web Voltando um pouco ao conteúdo deste e-book, lembre-se que foi visto na primeira Unidade como a web funciona, explicando a forma de como as informações trafegam e chegam ao final do processo ao usuário. Deste modo, como estudante da área de desenvolvimento, é preciso que você entenda como iniciar de fato a programação e para isso será necessário preparar o ambiente, beleza? Quando se fala de ambiente de desenvolvimento, é preciso compreender que está se falando sobre tudo que é necessário para criar um programa, um site ou uma simples página web, por exemplo. Fazendo um comparativo, quando alguém necessita escrever um livro, geralmente se usa o editor de texto (Word, Write, Google Docs...). Quando é preciso criar planilhas financeiras, utiliza- se de editores de planilhas (Excel, Calc...), correto? E por que é assim? Bem, o usuário tem total liberdade de fazer suas escolhas, é possível escrever livros e criar planilhas de formas mais arcaicas, ou seja, de forma que exija mais trabalho. No entanto, os editores conseguem automatizar diversas funções como sugerir, corrigir e complementar, tornando o trabalho muito mais rápido e menos maçante. E com a programação não é diferente. O programador tem a possibilidade de criar códigos em editores muitos simples e limitados como por exemplo o bloco de notas. No entanto, é possível também utilizar editores bem mais aperfeiçoados e desenvolvidos para este fim, como o Notepad++, Visual Studio Code, entre outros. 20 2.2 Editores de texto Se o seu desejo é desenvolver de forma mais rápida, chegou a hora. Como já explicado, os editores oferecem opções que tornam a criação mais ágil e neste sentido, o editor escolhido é o Notepad++. O Notepad++ é um editor relativamente simples, mas que possui muitas ferramentas interessantes. Para começar, seu código fonte é aberto e suporta nativamente cerca de 80 linguagens de programação diferentes. Assim, quando você está desenvolvendo algo em HTML, por exemplo, o editor consegue sugerir as tags e ainda, colorir o código automaticamente, facilitando a interpretação. Veja o exemplo na figura 4 abaixo: Figura 4 – Sugestão de tag no Notepad++ Fonte: autor Descrição: Tela do programa Notepad++ com o menu de ferramentas no topo e ao centro, um código fonte. Neste exemplo, ocorre a sugestão da tag <title>, responsável por definir o título que aparece na aba do navegador. Quando ocorre a sugestão, basta pressionar o enter e o programa autocompleta, acelerando a codificação e evitando erros de digitação. 21 Talvez você esteja se perguntando o que é tag, certo? Tenha calma, este assunto será abordado na próxima Unidade. Bem, apesar da escolha do Notepad++ como editor padrão para a nossa disciplina, você está livre para escolher o que melhor convier. 2.2.1 Principais características dos editores de texto Apesar das particularidades de cada editor, a grande maioria possui recursos semelhantes e na tabela abaixo estão listados alguns. Recurso Função Sugestão de tag Sugere a tag da respectiva linguagem quando se digita as letras iniciais. Autocompletar Completa de forma automática uma expressão no código que está sendo escrito. Plugins Permite a edição de plugins especiais para ativar novas funções. Seleções múltiplas Permite selecionar de diversas formas dentro do código fonte. Renomeação em lote Possibilita renomear de uma única vez diversos termos. Tabela 1 – Recursos dos editores Fonte: autor Descrição: Tabela de recursos dos editores de texto e suas funções Faça aqui o download do Notepad++ https://notepad-plus-plus.org/downloads/v8.5.7/ https://notepad-plus-plus.org/downloads/v8.5.7/ 22 Lembre-se que estas são apenas algumas características. É importante que você se aprofunde um pouco mais neste sentido, fazendo pesquisas e com isso, decidir qual editor se adequa melhor a necessidade. 2.3 Ambiente de desenvolvimento integrado IDE As IDEs (Integrated Development Environments) são ambientes completos para o desenvolvimento de software, oferecendo uma série de recursos integrados para ajudar os desenvolvedores durante o processo de codificação. Abaixo, estão listadas algumas das principais IDEs usadas no desenvolvimento web: 2.3.1 Visual Studio (VS) O Visual Studio, desenvolvido pela Microsoft, é uma das IDEs mais completas e populares. Oferece suporte a várias linguagens de programação, incluindo C#, F#, .NET, Python, JavaScript e muitas outras. Sua versão voltada para o desenvolvimento web, o Visual Studio Code, é amplamente usado devido à sua leveza, vasta gama de extensões e integração com Git. 2.3.2 IntelliJ IDEA Especialmente projetado para desenvolvedores Java, o IntelliJ IDEA é conhecido por sua alta qualidade e eficiência. Oferece suporte a uma ampla gama de frameworks e tecnologias, como Spring, Java EE e até mesmo JavaScript, HTML e CSS.2.3.3 Eclipse 23 O Eclipse é uma IDE de código aberto amplamente utilizada e altamente configurável. É comumente usado para desenvolvimento em Java, mas possui um ecossistema de plugins que o torna adaptável a diversas outras linguagens e propósitos. 2.3.4 NetBeans Essa IDE é uma plataforma modular escrita em Java, com um foco considerável no desenvolvimento Java, mas também oferece suporte a outras linguagens como PHP e C/C++. É conhecida por sua simplicidade e eficiência. 2.3.5 PyCharm Desenvolvido pela JetBrains, o PyCharm é uma IDE focada em Python. Possui recursos avançados de análise de código, depuração, testes e integração com frameworks populares como Django e Flask. 2.3.6 Sublime Text Embora seja mais um editor de texto avançado do que uma IDE completa, o Sublime Text oferece muitas funcionalidades essenciais para desenvolvimento web. É leve, altamente personalizável e tem um ecossistema de plugins bem extenso. 2.3.7 Por que escolher uma IDE? As IDEs oferecem uma variedade de recursos, como realce de sintaxe, depuradores integrados, gerenciamento de projetos, refatoração de código, controle de versão e muito mais. Elas são particularmente úteis para projetos complexos, oferecendo um ambiente integrado para o desenvolvimento ágil, tornando o processo de desenvolvimento mais eficiente e produtivo. 24 No entanto, a escolha da IDE pode variar de acordo com as preferências pessoais, a linguagem de programação utilizada e a natureza do projeto. A importância fundamental é encontrar uma ferramenta que se adeque ao fluxo de trabalho do desenvolvedor e possa melhorar a produtividade e a qualidade do código desenvolvido. 2.4 Ferramentas de Debugging e Inspeção Identificar e corrigir problemas de código é essencial no desenvolvimento web. Ferramentas de debugging e inspeção ajudam os desenvolvedores a compreenderem e corrigirem erros com eficiência. Alguns exemplos destas ferramentas: - Chrome DevTools: Oferece recursos avançados para inspecionar elementos da página, monitorar o desempenho, debugar JavaScript e editar estilos em tempo real. - Firebug: Uma extensão do navegador, anteriormente para o Firefox e agora disponível para outros navegadores, que fornece funcionalidades avançadas de inspeção e depuração. - Ferramentas de Desenvolvedor do Firefox, Safari, Edge etc.: Cada navegador oferece suas próprias ferramentas integradas para desenvolvimento, permitindo inspeção, depuração e otimização de aplicativos web. 2.5 Ferramentas de Gerenciamento de Pacotes Sistemas de gerenciamento de pacotes simplificam a instalação, atualização e remoção de bibliotecas e dependências do projeto. - NPM (Node Package Manager): É um dos gerenciadores de pacotes mais populares, especialmente na comunidade JavaScript. Permite instalar e gerenciar bibliotecas e ferramentas para projetos Node.js. - Yarn: Desenvolvido pelo Facebook, o Yarn é uma alternativa ao NPM, oferecendo desempenho melhorado e outras funcionalidades. 25 2.6 Servidores Locais e Ambientes de Testes Dispor de um ambiente de testes local é crucial para o desenvolvimento e o aprimoramento de aplicações web. - Servidores Locais: Ferramentas como XAMPP, WAMP e MAMP oferecem ambientes locais que combinam Apache, MySQL e PHP (ou outras linguagens), permitindo o desenvolvimento de aplicações web em um ambiente simulado. - Docker: Oferece containers virtualizados que podem conter todos os componentes necessários para um aplicativo. É útil para garantir a consistência do ambiente de desenvolvimento e a portabilidade do aplicativo. 2.7 Extensões e Plugins As extensões e plugins adicionam funcionalidades extras aos editores de código e navegadores, facilitando tarefas específicas. - Extensões do VS Code: Oferecem suporte para diferentes linguagens, depuração avançada, formatação de código e integração com serviços de terceiros. - Extensões do Chrome: Desde ferramentas de desenvolvimento até bloqueadores de anúncios, as extensões do Chrome podem ajudar os desenvolvedores a aprimorar sua experiência de navegação e desenvolvimento. Legal, não é mesmo? As ferramentas de desenvolvimento desempenham um papel vital na eficiência e qualidade do trabalho dos desenvolvedores web. A escolha e a familiarização com as ferramentas certas para o trabalho podem melhorar significativamente a produtividade e a qualidade das aplicações desenvolvidas. Saiba também que a constante evolução e inovação nessas ferramentas 26 também exigem que os desenvolvedores estejam sempre atualizados para aproveitar ao máximo as mais recentes e avançadas funcionalidades disponíveis. 2.8 Controle de Versão e Colaboração Dada a complexidade e tamanho dos projetos de desenvolvimento de software nos dias de hoje, é importantíssimo pensar em como controlar e manter as versões de modo colaborativo. Deste modo, o controle de versão e as ferramentas de colaboração são fundamentais para o desenvolvimento de softwares e afins. Neste capítulo, serão abordados os sistemas de controle de versão e as plataformas de colaboração mais utilizadas, destacando sua importância e impacto no desenvolvimento de aplicações web. 2.8.1 Sistemas de Controle de Versão 2.8.1.1 Git O Git é o sistema de controle de versão mais popular e amplamente utilizado na indústria de desenvolvimento de software. Desenvolvido por Linus Torvalds, é conhecido por sua velocidade, eficiência e flexibilidade. Permite que os desenvolvedores acompanhem as alterações no código- fonte, revertam para versões anteriores, gerenciem branches e facilitem a colaboração em equipe. - Branching e Merging: O Git facilita a criação de ramificações (branches) para desenvolver recursos independentes, permitindo a fusão (merging) dessas ramificações de volta ao código principal de maneira segura. - GitHub e GitLab: Plataformas que fornecem serviços baseados no Git, oferecendo repositórios remotos, ferramentas de colaboração, rastreamento de problemas (issues), integração contínua e muito mais. 27 - Fluxos de Trabalho Git: Estratégias como GitFlow, Feature Branching e outros fluxos de trabalho são comumente adotados para organizar o desenvolvimento de forma eficiente. 2.9 Colaboração e Plataformas de Desenvolvimento 2.9.1 GitHub O GitHub é uma plataforma baseada na web que utiliza o Git para hospedar repositórios de código-fonte. É um dos maiores repositórios de código aberto do mundo, permitindo que desenvolvedores colaborem em projetos, contribuam com código, revisem alterações e gerenciem problemas (issues) de forma colaborativa. - Colaboração em Equipe: Recursos como pull requests, revisão de código, comentários, wiki, e gerenciamento de projetos tornam o trabalho em equipe mais fluido e eficaz. - Integração Contínua e Implantação Contínua (CI/CD): Plataformas como GitHub Actions permitem a automação de testes, compilação e implantação de código diretamente do repositório. 2.9.2 GitLab Similar ao GitHub, o GitLab oferece recursos completos para gerenciamento de ciclo de vida do desenvolvimento de software, com a vantagem adicional de permitir a instalação local, garantindo controle total sobre os dados e processos de desenvolvimento. - CI/CD Integrado: Oferece ferramentas para CI/CD, permitindo a automatização de tarefas e garantindo a entrega contínua. - Gestão de Recursos: Possui funcionalidades para gerenciamento de projetos, rastreamento de problemas, wiki, análise de código, entre outros. 28 3.Competência 03 | Identificar a linguagem HTML5 Neste Unidade você aprenderá a identificar a linguagem HTML, bem como conhecer um pouco deste vasto universo do desenvolvimento de websites. Ainda nesta terceirasemana, serão explorados diversos códigos, exemplificando na prática os recursos disponíveis nesta linguagem. Você está pronto? Vamos lá! 3.1 O que é HTML? Muitos acreditam que HTML é uma linguagem de programação, mas na verdade não é. Como assim, professor? É isso mesmo. HTML é uma linguagem de marcação, sendo um padrão para a criação de páginas web. Em inglês, HTML significa Hyper Text Markup Language e quando se traduz para o português, tem-se linguagem de marcação de hipertexto. Esta linguagem é responsável por definir a estrutura e o significado de cada elemento que compõe o conteúdo de uma página. Para avançarmos um pouco mais no assunto, preciso lembrar de uma informação muito importante que foi estudada lá na Unidade 1, que é o protocolo. Por quê? É simples. Ao desenvolver uma página web em HTML, esta página precisa funcionar corretamente em qualquer sistema operacional ou dispositivo que possua um navegador. Para que isto ocorra, o protocolo entra e desempenha um papel muito importante, que é “regrar” o funcionamento. Quer conhecer um pouco mais do GitHub? Acesse: https://www.hostinger.com.br/tutoriais/o-que-github https://www.hostinger.com.br/tutoriais/o-que-github 29 Neste caso, os protocolos que são utilizados automaticamente quando se acessa um site são o HTTP (Hypertext Transfer Protocol) e o HTTPS (Hyper Text Transfer Protocol Secure). Estes protocolos são responsáveis por garantir a padronização da comunicação entre os dispositivos, não importando qual sistema operacional ou navegador está se usando. Analise a figura 5 abaixo: Figura 5 – Funcionamento do protocolo HTTP Fonte: autor Descrição: Em um retângulo, no lado esquerdo um computador representando o usuário acessando um site. Ao centro, um globo representando a internet e a direita, um conjunto de computadores representando um servidor. Os três objetos estão interligados entre setas, demonstrando a requisição HTTP e a resposta HTML. Conforme a figura 5, um usuário acessa um site, requisitando o protocolo HTTP pelo navegar e através da internet faz o contato com os servidores e em seguida acontece a resposta HTML, devolvendo ao usuário a informação antes requisitada. Portanto, na prática, quando você abre o navegador e digita uma URL, a comunicação entre as partes (cliente e servidor) acontece dessa forma, legal né? Agora que você domina um pouco o HTML, vamos começar a brincadeira de trabalhar com códigos! 3.2 Fundamentos do HTML Assim como toda linguagem de computador, a linguagem de marcação HTML possui uma forma de ser escrita para que funcione corretamente e seja entendida pelos dispositivos. 30 Esta forma de escrever também pode ser chamada de sintaxe. Deste modo, analise o pequeno trecho de código HTML abaixo: <p class="estilo"> Esta é a linguagem HMTL</p> Quadro 01 – Sintaxe do código HTML Fonte: autor Descrição: Código fonte demonstrando a sintaxe da linguagem HTML. Perceba que neste trecho de código existe uma composição de elementos específicos, sendo: 1. Tag de abertura: Trata-se do nome do elemento, no caso p, entre os sinais de menor (<) e maior (>). 2. Tag de fechamento: Semelhante a tag de abertura com o sinal de barra (/), determinando o final do elemento construído. 3. Conteúdo: É o conteúdo do elemento. Neste caso, o conteúdo é a frase “Esta é a linguagem HTML”. 4. Atributo: O atributo nem sempre é obrigatório, mas pode fazer parte do elemento, atribuindo comportamento ou uma característica adicional. Neste caso, está sendo atribuída uma classe, ou seja, um estilo. Ainda sobre o atributo, é importante entender que ele sempre deve ter um espaço entre ele e o nome do elemento, o nome do atributo seguido por um sinal de igual e aspas de abertura e fechamento, envolvendo todo o valor do atributo. 3.3 Estrutura básica do HTML Para criar de fato uma página HTML, é preciso, além de conhecer a sintaxe, saber como estruturar um arquivo HTML. Este momento é muito importante, pois será possível agregar um conjunto de elementos de forma combinada a fim de se criar uma página web funcional. 31 Deste modo, analise o trecho de código abaixo: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Minha primeira página HTML</title> </head> <body> <p>Olá, mundo!</p> </body> </html> Quadro 02 – Estrutura básica do código HTML Fonte: autor Descrição: Código fonte demonstrando a estrutura básica da linguagem HTML. Neste trecho de código tem-se: 1. O tipo de documento <!DOCTYPE html>: A função deste primeiro objeto na página HTML é informar ao dispositivo que está carregando a página de que se trata de um conteúdo HTML. 2. O elemento <html></html>: Este elemento tem fundamental importância na estrutura, pois comporta todo o conteúdo da página e é conhecido como elemento raiz. 3. O elemento <head></head>: Este elemento determina a seção do código onde todo o conteúdo que não é visível para o visitante, incluindo palavras-chaves para que apareçam nos sites de buscas, por exemplo. 4. O elemento <meta charset="utf-8" />: Elemento que tem a função de definir o tipo de codificação utilizada. 5. O elemento <title></title>: Este elemento define o título da página, que aparece na barra do navegador. 6. O elemento <body></body>: Este elemento determina a seção do código que irá mostrar ao usuário durante a visitação da página, como imagens, texto, vídeos e qualquer outro objeto compatível. Bacana, não é mesmo? Com esta estrutura básica é possível construir páginas incríveis e acrescentar centenas e até milhares de linhas de código. 32 Deste modo, pare para pensar. Em um arquivo com milhares de linhas de código, como fazer para identificar trechos, para posteriormente ajustar ou corrigir uma falha, por exemplo? É simples! Assim como nas outras linguagens, é possível inserir comentários sem que o usuário veja. Observe o exemplo abaixo: <p>Isto é um parágrafo</p> <!--Isto é um comentário!--> Quadro 03 – Parágrafo em HTML Fonte: autor Descrição: Código fonte demonstrando a criação de um parágrafo em HTML. Você percebeu a diferença entre um elemento e um comentário? Tenho certeza que sim! O comentário é composto por <!—e !-->. Portanto, à medida que a página vai sendo criada, comentários podem ser adicionados, servindo de guia e de explicação. Esta medida permite que o desenvolvedor identifique mais rapidamente as partes do código, encontrando problemas mais facilmente. 3.4 Metadados em HTML Basicamente, os metadados em HTML são um conjunto de informações inseridas em uma página web. Estas informações são responsáveis por permitir, por exemplo, que sites de busca encontrem a página, com base nas palavras-chave inseridas. Mas não é somente isso. Estes metadados podem definir alguns comportamentos interessantes, aprimorando a experiência do usuário. É possível por exemplo determinar que o site seja responsivo, ou seja, que se adeque em função do tamanho da tela e das propriedades do navegador. Neste sentido, saiba também que para implementar este conjunto de informações se faz necessário escrever dentro da tag <head>, ok? Veja um exemplo de metadados em uma página HTML: <!DOCTYPE html> 33 <html> <head> <meta charset="UTF-8"> <meta name="description" content="Free Web tutorials"> <meta name="keywords" content="HTML, CSS, JavaScript"> <meta name="author" content="John Doe"> <meta name="viewport" content="width=device-width, initial- scale=1.0"> <title>Minha primeira página HTML</title> </head> <body> <p>Olá, mundo!</p> </body> </html> Quadro 04 – Metadados em HTML Fonte: autor Descrição: Código fonte demonstrando a criação de metadados em HTML.3.5 O HTML 5 3.5 O HTML 5 Agora que você conhece um pouco dos fundamentos do HTML, vamos mergulhar na versão mais atual desta linguagem! A primeira coisa a entender é a filosofia do HTML5, sendo fundamental para compreender a natureza e os princípios orientadores dessa versão da linguagem de marcação HyperText Markup Language. HTML5 não é apenas uma linguagem, mas uma abordagem revolucionária para o desenvolvimento web. Neste tópico, exploraremos a filosofia subjacente ao HTML5 e como ela tem impactado a forma como criamos e interagimos com conteúdo na web. 3.5.1 Simplificação e Clareza Um dos princípios essenciais da filosofia do HTML5 é a simplificação. Os criadores do HTML5 buscaram simplificar a linguagem de marcação, tornando-a mais limpa, clara e fácil de entender. Eles eliminaram elementos obsoletos e redundantes e promoveram o uso de uma estrutura 34 mais semântica. Isso significa que o código HTML5 é mais intuitivo, o que facilita a criação e a manutenção de páginas web. 3.5.2 Foco na Semântica A semântica é outro pilar importante da filosofia do HTML5. Isso significa que os elementos HTML5 são projetados para transmitir significado, tornando o conteúdo da página mais compreensível tanto para os desenvolvedores como para os navegadores. O uso adequado de elementos como “<header>“, “<nav>“, “<article>“ e “<footer>“ torna mais fácil identificar a estrutura e o propósito do conteúdo, melhorando a acessibilidade e a otimização para mecanismos de busca. 3.5.3 Suporte à Diversidade de Dispositivos A web moderna é acessada por uma ampla variedade de dispositivos, desde computadores desktop até smartphones e dispositivos de assistência. A filosofia do HTML5 abraça essa diversidade e incentiva o desenvolvimento de páginas web responsivas e flexíveis. A capacidade de criar layouts adaptáveis e compatíveis com dispositivos móveis tornou-se um dos principais objetivos do HTML5. 3.5.4 Eliminação de Dependências em Plugins O HTML5 também se esforçou para eliminar a necessidade de plugins de terceiros, como o Adobe Flash e o Java Applets. Em vez disso, o HTML5 introduziu elementos nativos para a exibição de multimídia, como as tags “<video>” e “<audio>”. Isso tornou a experiência do usuário mais segura, eficiente e menos dependente de software externo. 35 3.5.5 Interatividade e API JavaScript A filosofia do HTML5 incentiva a criação de páginas web altamente interativas e dinâmicas. Integra-se estreitamente com JavaScript, oferecendo APIs nativas para interações mais sofisticadas. Isso inclui recursos como manipulação de elementos do DOM, acesso a dispositivos, geolocalização e muito mais, permitindo a criação de aplicativos web avançados. 3.5.6 Padrões Abertos e Acessibilidade HTML5 abraça a ideia de padrões abertos e acessibilidade. Ao aderir a padrões web abertos, como o W3C (World Wide Web Consortium), ele promove a interoperabilidade e a inovação. Além disso, fornece recursos para melhorar a acessibilidade da web, tornando o conteúdo disponível para uma ampla gama de usuários, incluindo aqueles com deficiências. 3.6 Estrutura do HTML 5 Apesar de semelhante, a estrutura do HTML5 se diferencia das versões anteriores. Agora, os elementos de estruturação ajudam a dividir o conteúdo em partes distintas de maneira mais organizada, o que não só torna o código mais legível para desenvolvedores, mas também proporciona uma melhor experiência para os usuários finais. 3.6.1 Elementos estruturais principais do HTML5 1. “<header>”: O elemento <header> é utilizado para representar o cabeçalho da página ou de uma seção. Pode conter elementos como logotipos, títulos e menus de navegação. 2. “<nav>”: O elemento <nav> é destinado a agrupar links de navegação. Isso inclui menus de navegação principal, links para outras partes do site ou até mesmo links de navegação de paginadores. 36 3. “<section>”: O elemento <section> é usado para agrupar conteúdo relacionado em uma página. Ele ajuda a dividir o conteúdo da página em seções temáticas distintas. 4. “<article>”: O elemento <article> é projetado para conteúdo independente e autônomo. Isso pode incluir postagens de blog, notícias, comentários ou qualquer conteúdo que possa ser republicado em outro contexto 5. “<aside>”: O elemento <aside> é utilizado para conteúdo relacionado, mas que não é essencial para a compreensão do conteúdo principal. Isso pode incluir barras laterais, anúncios ou conteúdo relacionado. 6. “<footer>”: O elemento <footer> representa o rodapé da página ou de uma seção. Geralmente contém informações de contato, links para políticas de privacidade e direitos autorais. 3.7 Semântica no HTML5 A semântica no HTML5 refere-se à atribuição de significado aos elementos HTML, tornando a estrutura do documento mais clara e compreensível para navegadores, mecanismos de busca e pessoas com deficiência. 3.7.1 Vantagens da Semântica 1. Acessibilidade: A semântica adequada torna o conteúdo mais acessível a pessoas com deficiência visual, pois os leitores de tela podem interpretar a estrutura da página. 2. SEO: Mecanismos de busca utilizam a semântica para entender a relevância do conteúdo. O uso de elementos corretos, como títulos, pode melhorar a classificação nos resultados de pesquisa. 3. Manutenção: Código semântico é mais fácil de entender e manter. Isso ajuda desenvolvedores a colaborar de maneira mais eficaz e aprimora a escalabilidade. 4. Compreensão: A semântica torna o código mais legível e compreensível para desenvolvedores, facilitando a colaboração e a depuração. 37 3.7.2 Elementos Semânticos HTML5 introduziu uma série de elementos semânticos que auxiliam na representação do significado do conteúdo. Alguns exemplos incluem: 1. “<header> e <footer>”: Indicam o início e o fim de um conteúdo, seja na página como um todo ou em uma seção específica. 2. “<nav>”: Define uma seção de navegação. 3. “<article>”: Representa uma peça de conteúdo autônoma e autocontida. 4. “<section>”: Agrupa conteúdo relacionado. 5. “<figure> e <figcaption>”: Usados para marcar imagens e fornecer descrições. 6. “<time>”: Utilizado para representar datas e horários Perceba que a estrutura e semântica desempenham um papel crucial no HTML5. Eles não apenas simplificam o desenvolvimento web, mas também melhoram a experiência do usuário e a acessibilidade. Ao utilizar os elementos de estruturação e atribuir significado apropriado aos elementos, os desenvolvedores podem criar páginas web mais compreensíveis, beneficiando tanto os visitantes quanto os mecanismos de busca. É essencial dominar esses conceitos ao trabalhar com HTML5 para criar conteúdo web de alta qualidade. Quer conhecer mais elementos semânticos presentes no HTML? Acesse o link: https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element 38 3.8 Formulários aprimorados HTML5 Os formulários aprimorados são uma das características mais notáveis e úteis do HTML5. Esta versão da linguagem de marcação introduziu várias melhorias nos formulários web, tornando a coleta de dados mais eficiente e melhorando a experiência do usuário. Neste tópico, exploraremos os recursos e as melhorias dos formulários no HTML5. 3.8.1 Elementos de formulários aprimorados O HTML5 apresenta diversos elementos de formulário que simplificam a criação de formulários web mais amigáveis e ricos em recursos. Alguns dos elementos de formulário aprimorados mais importantes incluem: 1. <input type="date">, <input type="time"> e <input type="datetime-local"> Esses tipos de entrada permitem que os usuários selecionem datas, horas ou data e hora a partir de controles nativosde seleção. Isso simplifica a entrada de dados e evita erros de formatação. 2. <input type="email"> e <input type="url"> Esses tipos de entrada validam automaticamente os endereços de e-mail e URLs inseridos pelos usuários, ajudando a garantir que os dados fornecidos sejam formatados corretamente. 3. <input type="number"> e <input type="range"> Esses tipos de entrada facilitam a coleta de números, permitindo que os usuários escolham valores em uma faixa específica. O tipo range cria um controle deslizante que permite aos usuários selecionar valores dentro de um intervalo predefinido. 4. <input type="search"> 39 Esse tipo de entrada é projetado para campos de pesquisa e oferece recursos adicionais, como sugestões de pesquisa e opções de preenchimento automático. 5. <input type="color"> Permite aos usuários escolher uma cor usando uma interface gráfica. Isso é particularmente útil em aplicações que envolvem seleção de cores, como paletas de cores. 6. <input type="file"> Permite que os usuários façam o upload de arquivos diretamente em um formulário. 3.8.2 Validação de formulário O HTML5 também introduziu recursos de validação de formulários que facilitam a verificação de dados inseridos pelos usuários. Alguns dos atributos de validação incluem: 1. required O atributo required pode ser aplicado a campos de formulário, tornando-os obrigatórios. Se um usuário tentar enviar o formulário sem preencher um campo obrigatório, uma mensagem de erro será exibida automaticamente. 2. pattern O atributo pattern permite que você defina um padrão de entrada específico para um campo. Isso é útil para validar entradas, como números de telefone ou códigos postais, de acordo com um formato específico. 3. min e max Esses atributos definem um valor mínimo e máximo aceitável para campos numéricos, como <input type="number"> e <input type="range">. 40 4. maxlength O atributo maxlength permite limitar o número máximo de caracteres que um usuário pode inserir em um campo de texto. Deste modo, veja um exemplo de um formulário básico em HTML5: <!DOCTYPE html> <html> <head> <title>Formulário Básico</title> </head> <body> <h2>Formulário Básico</h2> <form id="meuFormulario" action="#" method="post"> <!-- Campo de Nome --> <label for="nome">Nome:</label> <input type="text" id="nome" name="nome" required> <br><br> <!-- Campo de E-mail --> <label for="email">E-mail:</label> <input type="email" id="email" name="email" required> <br><br> <!-- Campo de Idade --> <label for="idade">Idade:</label> <input type="number" id="idade" name="idade" min="18" max="99" required> <br><br> <!-- Botão de Envio --> <input type="submit" value="Enviar"> </form> </body> 41 Quadro 05 – Formulário em HTML Fonte: autor Descrição: Código fonte demonstrando a criação de um formulário em HTML. Neste exemplo, foi criado um formulário simples com três campos: Nome, E-mail e Idade. Note que o atributo “required“ foi utilizado para indicar que esses campos são obrigatórios. 3.9 Multimídia e gráficos em HTML5 O HTML5 trouxe avanços significativos no que diz respeito a multimídia e gráficos na web. Foi introduzido elementos nativos que permitem a incorporação de áudio, vídeo e gráficos diretamente em páginas web, reduzindo a dependência de plugins de terceiros, como o Adobe Flash. Neste tópico, exploraremos como o HTML5 melhorou a integração de multimídia e gráficos na web. 3.9.1 Multimídia 1. <video> A tag <video> é usada para incorporar conteúdo de vídeo diretamente em uma página web. Ela suporta uma variedade de formatos de vídeo, como MP4, WebM e Ogg, permitindo que os desenvolvedores escolham o formato mais apropriado para seus públicos e dispositivos. O suporte a legendas e faixas de áudio múltiplas oferece uma experiência de visualização mais rica. Exemplo de uso da tag <video>: <video controls> <source src="video.mp4" type="video/mp4"> <source src="video.webm" type="video/webm"> Seu navegador não suporta vídeo HTML5. </video> Quadro 06 – Tag vídeo em HTML Fonte: autor Descrição: Código fonte demonstrando a inserção de um vídeo em HTML. 42 2. <audio> A tag <audio> permite a incorporação de arquivos de áudio em uma página web. Ela suporta formatos como MP3, WAV e Ogg. A capacidade de reproduzir faixas de áudio diretamente na página é útil para sites de música, podcasts e aplicativos que exigem áudio. Exemplo de uso da tag <audio>: <audio controls> <source src="audio.mp3" type="audio/mpeg"> <source src="audio.ogg" type="audio/ogg"> Seu navegador não suporta áudio HTML5. </audio> Quadro 07 – Tag áudio em HTML Fonte: autor Descrição: Código fonte demonstrando a inserção de um áudio em HTML. 3.9.2 Gráficos 1. <canvas> A tag <canvas> permite a criação de gráficos, animações e jogos diretamente na página web usando JavaScript. É uma ferramenta poderosa para desenvolvedores que desejam criar conteúdo gráfico personalizado. Com o canvas, é possível desenhar formas, linhas, imagens e até mesmo criar animações interativas. 2. SVG (Scalable Vector Graphics) O HTML5 também suporta a incorporação de gráficos vetoriais escaláveis usando a tecnologia SVG. Os gráficos SVG são baseados em XML e oferecem a capacidade de criar imagens nítidas e escaláveis que se adaptam a diferentes tamanhos de tela. Isso é particularmente útil para ícones e gráficos que precisam manter a qualidade em dispositivos de alta resolução. 43 Exemplo de uso de SVG: <svg width="100" height="100"> <circle cx="50" cy="50" r="40" stroke="black" stroke-width="2" fill="red" /> </svg> Quadro 08 – Gráfico SVG em HTML Fonte: autor Descrição: Código fonte demonstrando a inserção de um gráfico SVG em HTML. Neste sentido, você notou a evolução promovida pelo HTML5? Tenho certeza que sim! Com elementos nativos como <video>, <audio> e <canvas>, os desenvolvedores podem criar experiências ricas e interativas diretamente nas páginas web, sem depender de plugins externos. Isso não apenas simplifica o desenvolvimento, mas também melhora a acessibilidade e a compatibilidade com dispositivos diversos. Além disso, o suporte a gráficos vetoriais escaláveis com SVG torna a web mais adaptável a uma variedade de tamanhos de tela, oferecendo qualidade visual consistente em dispositivos de diferentes resoluções. O HTML5 abriu novas possibilidades para a criação de conteúdo multimídia e gráficos na web. 3.10 Geolocalização e armazenamento em HTML5 O HTML5 trouxe avanços significativos no que diz respeito à geolocalização e ao armazenamento local, proporcionando uma base sólida para o desenvolvimento de aplicativos e recursos web baseados em localização e para a capacidade de armazenamento local de dados. 3.10.1 Geolocalização A capacidade de determinar a localização geográfica de um dispositivo ou usuário é uma característica importante em muitos aplicativos e serviços web. O HTML5 introduziu a API de Geolocalização, que permite que páginas web acessem as coordenadas geográficas do usuário, desde que o usuário conceda permissão. 44 Principais recursos da API de Geolocalização: - “navigator.geolocation”: O objeto global navigator contém a API de Geolocalização. Ele fornece métodos como getCurrentPosition() para obter a localização atual do dispositivo e watchPosition() para rastrear mudanças na posição. 3.10.2 Armazenamento Local Os mecanismos de armazenamento local disponíveis na versão atual do HTML, permitem que aplicativos web armazenem dados no dispositivo do usuário. Isso é útil para armazenar preferências do usuário, cache dedados e informações temporárias. As principais opções de armazenamento local incluem: 1. localStorage O localStorage é um armazenamento de pares chave-valor que persiste mesmo após o fechamento do navegador. É útil para armazenar pequenas quantidades de dados. 2. sessionStorage O sessionStorage é semelhante ao localStorage, mas os dados são destruídos quando a sessão do navegador é encerrada. Isso é útil para armazenar informações temporárias que não precisam ser mantidas entre sessões. 3.11 O futuro do HTML5 Até o meu último corte de conhecimento em janeiro de 2022, o HTML5 já era amplamente adotado e estabelecido como a linguagem de marcação predominante na web. No entanto, o desenvolvimento de tecnologias web é um campo em constante evolução. Portanto, é interessante discutir as tendências e direções que poderiam impactar o futuro do HTML5. Vamos lá? Bem, dentre os potenciais desenvolvimentos futuros do HTML5, podemos elencar os seguintes tópicos: 45 I- HTML6 ou Evolução para Padrões Posteriores A contínua evolução do HTML e dos padrões da web é uma possibilidade. Novas versões, como o HTML6, poderiam trazer recursos adicionais, melhorias na semântica, reforço na segurança e avanços na interatividade. II- Integração com Tecnologias Emergentes Com o crescente uso de Internet das Coisas (IoT), realidade virtual (VR), realidade aumentada (AR) e inteligência artificial (IA), espera-se que o HTML5 evolua para integrar-se mais profundamente com essas tecnologias, oferecendo suporte nativo a recursos como sensores, dispositivos de realidade aumentada e interfaces de voz. III- Maior Foco em Acessibilidade e Padrões Web A ênfase contínua na acessibilidade e na conformidade com padrões web é provável. O desenvolvimento centrado na acessibilidade pode ser um aspecto crítico, garantindo que o HTML5 e futuras versões sejam mais acessíveis e utilizáveis por todos os usuários, independentemente das suas capacidades. IV- Otimização para Dispositivos Móveis e Navegação por Toque Com o aumento do uso de dispositivos móveis, a otimização e aprimoramento da experiência de navegação em telas sensíveis ao toque podem ser um ponto chave para o HTML5. Elementos e recursos voltados para interações táteis e otimização para telas menores podem ser mais aprofundados. V- Maior Segurança e Privacidade Dada a crescente preocupação com a segurança e a privacidade dos dados na web, o HTML5 poderia evoluir para incluir mais recursos e práticas para proteger a segurança e a privacidade do usuário, com implementações mais rigorosas de políticas de segurança, prevenção de rastreamento e aprimoramento na proteção de dados. VI- Desenvolvimento de Novas APIs A evolução do HTML5 pode incluir o desenvolvimento de novas APIs para oferecer funcionalidades avançadas aos desenvolvedores, como acesso a sensores do dispositivo, dados de saúde e integração com outras tecnologias emergentes. 46 Por fim, estas previsões sobre o futuro do HTML5 são baseadas nas tendências e nas necessidades percebidas até o momento. Contudo, o desenvolvimento tecnológico é dinâmico, e novas direções e inovações podem surgir a qualquer momento. A evolução do HTML5 dependerá, em grande parte, das necessidades emergentes da web e dos avanços tecnológicos no campo do desenvolvimento web. 4.Competência 04 | Identificar a linguagem CSS3 O CSS (Cascading Style Sheets) é uma linguagem fundamental para o desenvolvimento de páginas da web nos dias de hoje. Ele desempenha um papel crucial na criação da aparência e do design de um site, tornando-o atraente, responsivo e interativo. O CSS3 é uma evolução significativa desse padrão, trazendo inúmeras melhorias e recursos que permitem aos desenvolvedores web criar experiências mais ricas e envolventes para os usuários. Ao longo desta Unidade, identificaremos como o CSS3 tem transformado a forma como se planeja e estiliza páginas da web, proporcionando um maior controle sobre o layout, animações, efeitos visuais e muito mais. 4.1 História do CSS Para compreender o significado e a importância do CSS3 (Cascading Style Sheets 3), é essencial voltar no tempo e explorar um pouco da história do CSS. O CSS desempenha um papel fundamental no desenvolvimento de páginas da web, permitindo que os desenvolvedores controlem a apresentação e o estilo de documentos HTML. O CSS3, como a terceira grande versão dessa linguagem, representa uma evolução significativa em relação às suas versões anteriores. Deste modo, o conceito de estilos para a web surgiu com a criação da própria World Wide. Inicialmente, os estilos eram incorporados diretamente no HTML, o que tornava o código complexo e pouco maleável. Isso levou à necessidade de separar o conteúdo da apresentação, dando origem à ideia de uma linguagem de estilo independente: o CSS. 47 O primeiro rascunho oficial do CSS foi proposto por Håkon Wium Lie e Bert Bos em 1994, e em 1996, o CSS1 se tornou uma recomendação do W3C (World Wide Web Consortium). Com o CSS1, os desenvolvedores puderam finalmente aplicar estilos de maneira mais eficiente e consistente em suas páginas da web. 4.1.2 CSS1 e CSS2 Embora o CSS1 tenha sido uma revolução na época, ele ainda tinha suas limitações. A especificação era relativamente simples, o que restringia as capacidades de design das páginas web. O CSS2, introduzido em 1998, trouxe avanços significativos. Ele introduziu suporte para posicionamento, impressão e mídia, tornando-se uma ferramenta mais versátil para os desenvolvedores. No entanto, o desenvolvimento da web estava avançando rapidamente, e a demanda por mais recursos de design e formatação aumentou. Isso levou à necessidade de uma nova versão do CSS que pudesse acompanhar as demandas de uma web cada vez mais sofisticada. 4.1.3 Enfim o CSS3 O CSS3, a terceira iteração da linguagem de estilo, foi desenvolvido para preencher essa lacuna. A primeira versão de trabalho do CSS3 foi lançada em 1999, mas sua adoção generalizada ocorreu mais tarde, à medida que os navegadores começaram a implementar seus recursos. Uma das mudanças mais notáveis com o CSS3 foi a decisão de dividir a especificação em módulos individuais, em vez de lançar uma única versão monolítica. Cada módulo abordava um conjunto específico de recursos, como cores, tipografia, layout, transformações e animações. Isso permitiu que os desenvolvedores adotassem apenas as partes do CSS3 que eram relevantes para seus projetos, legal né? Portanto, o CSS3 tem passado por diversas atualizações e refinamentos, tornando-se uma parte vital do desenvolvimento web moderno. Os recursos avançados do CSS3 permitem que os desenvolvedores criem layouts complexos, animações impressionantes e efeitos visuais ricos, tornando a web mais interativa e atraente para os usuários. 48 Nos próximos tópicos será abordado a sintaxe e os seletores do CSS3, permitindo uma compreensão mais aprofundada desta linguagem de estilo. 4.2 Sintaxe Básica do CSS Para aproveitar ao máximo o CSS3 e suas capacidades avançadas de estilização, é essencial compreender a sintaxe e os seletores que compõem esta linguagem de estilo. Aqui, exploraremos a estrutura fundamental do CSS3 e os diferentes tipos de seletores que você pode utilizar para direcionar elementos HTML em suas páginas da web. A sintaxe do CSS3 é relativamente simples, consistindo em uma regra de estilo que define como um elemento HTML deve ser estilizado. Cada regra é composta por um seletor e um conjunto de propriedades e valores. Aqui está um exemplo básico de uma regra CSS3: seletor { propriedade: valor; } Quadro 09 – Sintaxe básica do CSS Fonte: autor Descrição: Código fonte demonstrando a sintaxe básica do CSS. Perceba neste exemplo que se tem: Seletor: O seletor identifica