Angular, React, Vue and Others
Students will work in groups to create a Wiki comparing major client-side JavaScript frameworks: Angular, React, Vue and Others. If you did not work before with Moodle Wikis, see this small video (3:36 min.) on the Wiki activity page.
Angular
Framework name: Angular
Presentation: canva
Student List
Main Application Niches
Esse framework é amplamente utilizado em ambientes corporativos, nos quais é necessário que existam soluções completas, consistentes e de fácil manutenção. Por oferecer todas essas vantagens, Angular têm crescido cada vez mais no mercado, com o aumento das empresas e soluções que a utilizam, além do aumento da oferta de vagas que requisitam esse conhecimento.
Além disso, Angular é muito utilizado em aplicações dinâmicas, nas quais o conteúdo é exibido de acordo com a navegação do usuário, por exemplo chats e redes sociais.
Por fim, outra aplicação muito direta de Angular é com as SPAs (Single Page Applications), que são aplicações web ou mobile construídas em uma única página, na qual a interação e navegação entre as sessões de uma página ocorrem de maneira a qual não é necessário recarregar a página em cada mudança.
Future Perspectives
De acordo com posts feitos pela equipe do Angular (encontrados aqui e aqui), as principais mudanças e perspectivas para o futuro do Framework estão relacionadas com comunidade, parcerias, documentação, e em partes técnicas voltadas para a sua melhoria e simplificação.
Presentation: canva
Student List
- Jefferson Eduardo Muniz Bueno - 11275255
- Luísa Souza Moura - 10692179
- Leonardo Perassoli - 10376026
Main Framework Features
O que é Angular?
- framework open source mantido pelo Google
- usado principalmente para desenvolver single page applications
- alta escalabilidade
- dispõe de ferramentas para desenvolver, testar e dar manutenção no código
- baseado em Typescript
Primórdios - AngularJS
- Desenvolvido em 2009
- Javascript
- Segue o padrão MVC de arquitetura de software: divide a arquitetura do software em três partes tornando a aplicação mais leve, organizada e de fácil manutenção e focado no reuso de código
- Objetivos: abstrai a manipulação do DOM e considera testes do código tão importantes quanto o desenvolvimento
Framework de teste:
- É usado o framework Jasmine para criar testes unitários para o código
- Aumenta a confiança no código e diminui a chance de problemas em produção
- Disponibiliza comandos que auxiliam e agiliza a configuração e execução do código
- Pode executar a aplicação, rodar testes unitários ou E2E e checar boas práticas
Data Binding:
- One way/Two way
- Maneira simples para alterar o DOM
Progressive Web Application:
- Possui ferramentas para o desenvolvimento de PWA
- Torna a página muito responsiva e executável em qualquer dispositivo
Framework Advantages
- A obrigatoriedade do uso de Typescript torna as aplicações muito mais seguras, legíveis e organizadas.
- Apresenta a maior variedade de recursos nativos, além de suporte a diversas bibliotecas oficiais para Routing, Server-side Rendering, Animações, etc.
- Por ser voltado ao mundo corporativo e à escassez de funcionários capacitados em Angular, tem a maior variedade de oportunidades no mercado de trabalho.
- Por ser opinionated, "opinando" em como o projeto é estruturado, dá aos desenvolvedores padrões, tornando projetos mais organizados e com estruturas mais previsíveis e legíveis.
Framework Disadvantages
- Dentre os principais frameworks do mercado, o Angular apresenta a menor comunidade atualmente, além de ser o mais temido e o menos amado, como constatou a pesquisa de popularidade do StackOverflow de 2022, que pode ser visualizada aqui.
- Comunidade descentralizada. após o lançamento do Angular em 2016, substituindo o antigo Angular.js, muitos desenvolvedores e empresas não migraram para a nova versão, o que causou uma divisão da comunidade e das vagas de trabalho.
- Pelo fato de ser mais complexo e extenso que os outros Frameworks populares, tem uma curva de aprendizado muito acentuada.
- Muito mais pesado que frameworks como React e Vue, devido principalmente ao fato de a maior parte de suas funções estarem ligadas diretamente ao framework, ao invés de serem importadas sob demanda
Esse framework é amplamente utilizado em ambientes corporativos, nos quais é necessário que existam soluções completas, consistentes e de fácil manutenção. Por oferecer todas essas vantagens, Angular têm crescido cada vez mais no mercado, com o aumento das empresas e soluções que a utilizam, além do aumento da oferta de vagas que requisitam esse conhecimento.
Além disso, Angular é muito utilizado em aplicações dinâmicas, nas quais o conteúdo é exibido de acordo com a navegação do usuário, por exemplo chats e redes sociais.
Por fim, outra aplicação muito direta de Angular é com as SPAs (Single Page Applications), que são aplicações web ou mobile construídas em uma única página, na qual a interação e navegação entre as sessões de uma página ocorrem de maneira a qual não é necessário recarregar a página em cada mudança.
Future Perspectives
De acordo com posts feitos pela equipe do Angular (encontrados aqui e aqui), as principais mudanças e perspectivas para o futuro do Framework estão relacionadas com comunidade, parcerias, documentação, e em partes técnicas voltadas para a sua melhoria e simplificação.
- Jornada do usuário: um dos maiores temas para o futuro próximo do Angular é a melhoria e simplificação da jornada do usuário. Isso está acontecendo e irá continuar por meio da melhoria dos conceitos e implementações do Framework, e também por meio do crescimento da comunidade e facilitação dos passos iniciais no aprendizado.
- Parcerias: a fim de fazer parte do desenvolvimento de uma web mais rápida e acessível, Angular está fazendo diversas parcerias e uma delas foi com o Project Aurora, a fim de melhorar as ferramentas utilizadas para desenvolvimento. Com isso, esperam-se melhorias no server-side rendering por meio do uso de hydration, novas checagens de erro e diagnósticos, novos guias de navegação, dentre outros.
- Standalone components: novos tipos de componentes que simplificam o Framework. Além da facilitação no entendimento de conceitos, com esses componentes não é necessário utilizar o módulo NgModule.
- Documentação e comunidade: há um grande investimento nessas frentes, para que novos desenvolvedores consigam iniciar a jornada de forma fácil e para que haja uma contribuição cada vez maior.
- Typed Forms: nova feature do Framework. Substituição dos forms genéricos e com difícil tratamento de tipos por forms que já tem nativamente a possibilidade de lidar com tipos.
As perspectivas para o futuro do Angulas são otimistas e envolvem, em grande parte o ciclo de melhorias para que haja um desenvolvimento de comunidade e ao mesmo tempo uma grande comunidade que já contribui para tais melhorias.