Essa é uma coleção de projetos Dart dividida em tópicos que contém exemplos de código com explicações, diferentes usos e links para outras leituras.
Ler em: English, Español, Traditional Chinese.
É um playground porque você pode fazer alterações no código para ver como ele se comporta, além de testá-lo usando asserções. Também é possível revisar o código que você escreveu automaticamente e verificar se ele se encaixa no guia de estilo de código Dart. Isso tudo pode tornar seu processo de aprendizagem mais interativo e ajudar a manter a qualidade do código bastante alta desde o início.
É um cheatsheet porque você pode voltar a esses exemplos de código quando quiser recapitular a sintaxe das estruturas padrão do Dart. O código está cheio de testes com asserções, então você poderá ver o retorno das funções sem precisar executá-las manualmente.
Você pode se interessar também por 🤖 [SUA-IDEIA-DE-PROJETO-DART]
Cada projeto neste repositório é estruturado para facilitar a aprendizagem e experimentação dos tópicos de Dart. Aqui está um exemplo de como um projeto típico está organizado:
// Nome do tópico
// Exemplo: Lists (Listas em Dart)
/// Link para leituras adicionais (usando comentários de documentação do Dart)
/// @see: https://dart.dev/guides/libraries/library-tour#collections
// Descrição do Tópico
// Uma explicação mais detalhada sobre o tópico atual, como listas (Lists) em Dart.
// Exemplo: As listas em Dart são coleções ordenadas de objetos, oferecendo um
// objeto que pode conter múltiplos elementos em uma ordem específica.
// Exemplo de Código
final numbers = <int>[]; // Declaração de uma lista de inteiros
// Explicação do Subtópico
// Cada arquivo contém exemplos e funções de teste que ilustram subtópicos
// (ex.: tipos de lista, métodos de lista).As listas em Dart (List) são a implementação mais comum de uma coleção ordenada de itens. Elas podem ser de tamanho fixo ou dinâmico. O tipo de variável que a lista pode armazenar é definido usando a sintaxe genérica (<T>). Veja abaixo um exemplo de como declarar e manipular listas em Dart:
// Declaração de uma lista de inteiros chamada "numbers"
var numbers = <int>[];
// Adicionando elementos à lista
numbers.add(1);
numbers.add(2);
numbers.add(3);
// Imprimindo os elementos da lista
print(numbers); // Saída: [1, 2, 3]
// Adicionando múltiplos elementos de outra lista usando o método addAll
var moreNumbers = [4, 5, 6];
numbers.addAll(moreNumbers);
// Imprimindo os elementos atualizados da lista
print(numbers); // Saída: [1, 2, 3, 4, 5, 6]Diferença entre Listas Dinâmicas e de Tamanho Fixo
- Listas Dinâmicas (Padrão): São de tamanho dinâmico, ou seja, podem crescer e diminuir conforme necessário (
.add(),.remove()). São criadas com[]ouList<T>.empty(growable: true). - Listas de Tamanho Fixo: Têm um tamanho que não pode ser alterado após a criação. São melhores para quando o número de elementos é conhecido e não mudará. Tentar usar
.add()ou.remove()resultará em um erro.
- Encontrar o tópico que deseja aprender ou recapitular.
- Ler os comentários e/ou a documentação vinculada em cada projeto (como no exemplo acima).
- Analisar os exemplos e os testes para ver exemplos de uso e a saída esperada.
- Alterar o código ou adicionar novos testes para ver o que acontece.
- Executar testes e revisar o código para ver se ele funciona e está escrito corretamente.
- Começando
- Operadores
- Operadores Aritméticos (
+,-,*,/,~/,%) - Operadores Bitwise (
&,|,^,>>,<<,>>>,~) - Operadores de Atribuição (
=,+=,??=,-=,*=,/=etc.) - Operadores de Relacionais (
==,!=,>,<,>=,<=) - Operadores Lógicos (
&&,||,!)
- Operadores Aritméticos (
- Tipos de Dados
- Controles de Fluxo
- Funções
- Classes
- Definição de Classe (
class) - Construtores e Instâncias de Objetos
- Métodos e Variáveis de Instância
- Getters e Setters
- Herança (
extends) - Classes Abstratas e Interfaces (
abstract,implements) - Mixins (
with)
- Definição de Classe (
- Módulos e Pacotes
- Bibliotecas e Visibilidade (
import,show,hide) - Pacotes (gerenciados com pub.dev)
- Bibliotecas e Visibilidade (
- Erros e Exceções
- Tratando Exceções (
throw,try-catch)
- Tratando Exceções (
- Arquivos
- Lendo e Escrevendo em Arquivos (usando
dart:io)File('meu_arquivo.txt').writeAsStringSync('Olá, Dart!');
- Lendo e Escrevendo em Arquivos (usando
- Adicional
- Futures e Streams (Programação Assíncrona)
- Generators (
sync*,async*) eyield - Algumas Bibliotecas Padrão
- Tempo e Datas (
DateTime,Duration) - Coleções (
dart:collection) - Conversão (
dart:convertpara JSON, etc.)
- Tempo e Datas (
Instalando o SDK do Dart
Certifique-se de ter o SDK do Dart instalado em sua máquina.
Você pode ver a versão do Dart executando:
dart --versionInstalando dependências
Instale todas as dependências listadas no arquivo pubspec.yaml do projeto executando:
dart pub getO comando dart pub get irá baixar todas as dependências listadas no arquivo pubspec.yaml do seu projeto, utilizando o pub como gerenciador de pacotes.
Testes são feitos usando o pacote test, o framework de testes padrão em Dart.
Para executar todos os testes no projeto, execute o seguinte comando na pasta raiz:
dart testPara executar testes de um arquivo específico, execute:
dart test path/para/seu_arquivo_test.dartPara executar um teste específico pelo seu nome:
dart test --name "nome ou parte do nome do teste"