BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Google libera o Dart 2.1

Google libera o Dart 2.1

Favoritos

O Google liberou o Dart 2.1. Essa versão traz novas funcionalidades na linguagem, melhorias de performance, checagem de tipos mais rápida e melhor usabilidade para erros de tipos.

O Dart 2, liberado no início do ano, adicionou suporte ao compilador para geração de código para dispositivos móveis, ferramentas da plataforma web retrabalhadas e o sound type system (também conhecido como type safe system) para ajudar as equipes na construção de apps complexas.

O sound type system ajuda os usuários durante o desenvolvimento, informando quando um desenvolvedor viola um contrato especificado por tipos. Agora no Dart 2.1, ambas as verificações de tipos em tempo de edição e em tempo de compilação estão completas.

O Dart 2.1 melhorou o suporte aos mixins. Mixins são uma funcionalidade que permite aos desenvolvedores reutilizar o código de uma classe em várias hierarquias de classes. Uma nova sintaxe para mixins foi adicionada, a palavra chave mixin pode ser usada na definição de classes para serem somente usadas como mixins. É importante observar que a nova sintaxe mixin impede que os desenvolvedores estendam ou construam uma classe mixin.

Agora os mixins podem estender outras classes (anteriormente só era possível estender Object) e invocar métodos de suas superclasses. Um exemplo de extensão é o das APIs de animação do Flutter, na qual o SingleTickerProviderStateMixin declara um mixin que implementa a interface TickerProvider.

mixin SingleTickerProviderStateMixin on State implements TickerProvider {
  ...
}

A nova sintaxe mixin é necessária para os desenvolvedores que desejam usar super dentro de um mixin.

class Superclass {
  superclassMethod() {
    print("in superclass");
  }
}

mixin SomeMixin on Superclass {
  mixinMethod() {
    // This is OK:
    super.superclassMethod();
  }
}

class GoodSub extends Superclass with SomeMixin {}

class BadSub extends Object with SomeMixin {}
// Error: Since the super() call in mixinMethod() can't find a
// superclassMethod() to call, this is prohibited.

O Dart 2.1 agora infere onde um int pode ser usado como um double, um problema comum para os desenvolvedores Flutter ao usar um tipo int em que a API espera um tipo double.

(Imagem obtida de medium.com/dartlang)

Os desenvolvedores Flutter e web podem tirar proveito das melhorias de performance. O custo da checagem de tipos foi reduzido no Dart 2.1, para ambos o código compilado AOT e para código sendo executado na VM com a compilação JIT. De acordo com o Google, a execução de uma análise de código de um grande aplicativo de referência que costumava levar 41 segundos, agora leva 25 segundos. Além disso, o arquivo dart2js minificado teve uma redução de tamanha de 17%, e a compilação está 15% mais rápida.

O Dart 2.1 agora é oficialmente suportado pelos protocol buffers. Os protocol buffers são um mecanismo neutro de plataforma e neutro de linguagem para serializar dados estruturados, as linguagens suportadas são Java, Python, Objective-C, C++, Dart, Go, Ruby e C#. Mais informações sobre protocol buffers podem ser encontradas na documentação de referência.

Outras funcionalidades disponíveis são:

  • Adição de construtores HashMap.fromEntries e LinkedHashmap.fromEntries;
  • Adição de operadores /, | e ^ para booleanos;
  • Adição de novos códigos de status HTTP;
  • Adição de flag -O para ajustar os níveis de otimização.

A lista completa de funcionalidades, correções de bugs e mudanças que quebram a compatibilidade podem ser encontradas no changelog.

O Dart SDK 2.1 está disponível para download na homepage do Dart. Para desenvolvedores Flutter, o Dart 2.1 faz parte da versão 1.0 do Flutter. O Google também disponibilizou alguns exemplos de int-to-double e mixins.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT