Angular: tudo sobre versões e releases

No items found.
13/11/2019
Ruben Marcus
Ruben Marcus
Front-end Developer

Focado em performance e fotógrafo de rua nas horas vagas.

Está sem tempo para ler? Aperte o play para escutar o artigo.

Como foi falado neste artigo, o Angular a partir da segunda versão é um framework totalmente novo. 

A primeira versão do Angular ou AngularJS, foi disruptiva para o desenvolvimento front-end, pois foi o primeiro framework que começou a popularizar o conceito de SPA na web.

O Angular acabou mudando da versão 1.x (AngularJS) para uma versão nova porque esse "novo Angular" tem uma estrutura de código, sintaxe, totalmente diferente do AngularJS. 

É realmente um novo framework.

Algumas diferenças do AngularJS para o Angular 2+

1 – O Angular 2+ utiliza Typescript, enquanto que o AngularJS, usa JavaScript.

2 – O Angular agora é feito de componentes. Não tem mais necessidade de criar um controller e trabalhar com $scope.

3 – AngularJS não foi construído considerando o suporte mobile. Angular 2+ é totalmente orientado ao mobile.

4- A sintaxe é totalmente diferente, agora o ng-for, por exemplo, é *ngFor, o padrão da sintaxe é camelcase.

5 – Angular 2+ possui um cli, para criação fácil de novos projetos, componentes e serviços.

6 - A definição de um serviço antes no AngularJS poderia ser feita de várias maneiras: uma factory, serviço, provider, constant, values. Agora, como o Angular 2+ é baseado em classes, essa é a única maneira de definir um serviço.

7- A performance e o tamanho do bundle final mudou na aplicação.

Versionamento do Angular

O Angular utiliza o SemVer para seus releases.

O que isso significa? Que cada nova versão segue um padrão de Major, Minor e Patch.

Releases Major

As releases Major acontecem duas vezes ao ano, com a última em 9 Outubro/Novembro 2019, e a próxima programada para Maio de 2020. 

Nas releases Major, o Angular traz novidades na API, novas features, e talvez seja necessário, fazer alterações no código e nos testes.

Releases Minor

As releases Minor trazem algumas features menores que são totalmente compatíveis com as versões Major.

Releases Patch

Já as releases Patch corrige eventuais bugs que possam travar o desenvolvimento dentro do Angular.

Veja agora algumas mudanças conforme as releases do Angular 2+:


Angular 2

2016

- Completa re-escrita do Angular.

- Escrito completo em TypeScript.

- Suporte de TypeScript 1.8+

- Suporte à Mobile.

Angular 3

O release do Angular 3, não aconteceu. O @angular/router já estava na versão 3 e lançar a versão 4 do router com o Angular na versão 3 iria criar bastante confusão.

Angular 4

2017

- Mudanças no core do Angular.

- Angular 4 é uma nova versão do Angular 2.

- Melhora na performance com mudanças na compilação AOT.

- Compatível com TypeScript 2.1 e 2.2

- Animações foram separadas do @angular/core para @angular/animation.

- Else introduzido no *ngIf.

Angular 5

Novembro de 2017

- Otimizador de Build: Remove código que é desnecessário da sua aplicação.

- Preserve White Space: colocando “angularCompilerOptions”: { “preserveWhitespaces”: false}` , no tsconfig.json , você remove espaços em brancos desnecessários, que reduzem o tamanho final do bundle.

- suporte ao TypeScript 2.3

- Alguns LifeCycle events novos no Router do Angular:

ActivationStart, ActivationEnd, ChildActivationStart, ChildActivationEnd, GuardsCheckStart, GuardsCheckEnd, ResolveStart and ResolveEnd.

- HttpClient: Até a versão do Angular 4.3, era usado @angular/HTTP , e foi depreciado, e no Angular 5 o novo modulo foi chamado de HttpClientModule e vem no package novo @angular/common/http

- Compilação melhorada.

Angular 6

Abril de 2018

- Release mais focado nas ferramentas do Angular do que no framework em si.

- Mudou para a versão do RxJS6

- Mudança de <template> para <ng-template>

- Registrar o provider: para registrar novo serviço, você importa no módulo e declara dentro do providers.

- Consegue também usar o providedIn:root, nos serviços com Injectable decorator.

- Uso de angular.json ao invés de angular-cli.json.

- Suporte à múltiplos projetos: podendo adicionar vários no angular.json.

- Release inicial do Angular Elements, para usar componentes Angular em outros ambientes como Vue e React.

Angular 7

Outubro de 2018

Esse é um Release Major que expande todo framework no core, Angular Material e no CLI.

-Angular 7 suporta o TypeScript 2.9

- Novo Pipe: KeyValuePipe

- Novo compilador, Compilador de Compatibilidade (bgcc).

- Nova interface: DoBootstrap

- Nova interface: de UrlSegment[], para CanLoad

- CLI: Pode iniciar um projeto com SCSS, Stylus ou Less

Angular 8

Março/Abril de 2019

- Menor, mais rápido e fácil de usar

- Suporte ao TypeScript 3.2

- Suporte a Sass.

- Arquivos Sass/Less para .css

- Suporte a build com o Bazel.

- Migração do Renderer para Renderer 2.

- Ivy: Renderização de nova geração do Angular, com bundles e pacotes muito menores.

- Uso de Dart-Sass substituindo o Ruby para criar arquivos Sass.

- Melhora no suporte de webworkers.

- Melhora na migração de apps Angular.js para Angular 8.

- Suporte a Webworker.

- Apis de Build no CLI: com essa feature nova conseguimos customizar comandos do Angular CLI como ng build, ng test e ng run.

- Imports dinâmicos nas configurações de rotas.

- ng deploy adicionado ao Angular CLI.

- Suporte a Node 10.

Angular 9

Outubro/Novembro de 2019

 - Melhoras no compilador Ivy.

- formControlName também aceita número no form.

- TestBed.get depreciado.

- Suporte ng-add no pacote de localização.

- Adicionado o ivy- expose window.ng.getDebugNode helper e também suporta ng-add no pacote de localização.

- Adicionado ivy-i18n - adicione suporte à sintaxe para o bloco de metadados $ localize.

- Adicionado ivy - i18n - reorganiza os pontos de entrada para melhor reutilização.

- Permite diretivas sem seletor como classes base no View Engine no compilador.

Upgrades e Compatibilidade

O Angular geralmente oferece suporte nas 2 versões anteriores da versão do último release.

Precisa de ajuda na atualização entre versões do Angular? Veja aqui nesta página

Ainda ficou com alguma dúvida sobre as versões e releases do Angular ou quer dar alguma dica legal? Escreva nos comentários!

Newsletter sobre desenvolvimento

Quer receber os melhores conteúdos sobre desenvolvimento no seu e-mail toda semana? Assine aqui nossa newsletter.

O que você achou deste conteúdo?
Quer receber nossos conteúdos?
Seu cadastro foi efetuado com sucesso! Enviaremos as novidades no seu email.
Oops! Something went wrong while submitting the form.