Dart: Configuração de Ambiente Dart e Toolchain

Última atualização: 2026-08-26

O primeiro passo para escrever um bom código é configurar um bom ambiente.

1. O que Você Aprenderá


2. A História Real de uma Iniciante

(1) Dor: A Configuração de Ambiente Desanima Iniciantes

Alice, uma desenvolvedora Python, começou a aprender Dart recentemente. Ela encontrou 5 tutoriais online, cada um recomendando um método de instalação diferente — alguns usando Homebrew, outros Chocolatey, outros download manual. Após lutar por 2 horas, dart --version ainda informava "command not found". Ela quase desistiu antes de escrever uma única linha de código.

(2) A Solução Certa

Instalar o Dart SDK é na verdade apenas 3 passos: download → configurar PATH → verificar. Com a extensão Dart do VS Code, você pode ir da instalação à execução do primeiro programa em apenas 10 minutos.

BASH
# Passo 1: Verificar instalação
dart --version

# Passo 2: Criar primeiro projeto
dart create hello_dart

# Passo 3: Executar
cd hello_dart && dart run
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

(3) Benefícios


3. Instalação do Dart SDK

(1) Métodos de Instalação por Plataforma

100%
flowchart TD
  A[Download SDK] --> B[Configurar PATH]
  B --> C[VS Code + Extensão]
  C --> D[dart create]
  D --> E[dart run]
  E --> F[Hello World]
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.
Plataforma Método Recomendado Comando
Windows Chocolatey choco install dart-sdk
macOS Homebrew brew install dart
Linux (Debian) APT Veja comandos abaixo
Linux (Genérico) Download Manual Extrair + Configurar PATH

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

: Instalação no Windows

BASH
# Instalar via Chocolatey (executar como Administrador)
choco install dart-sdk

# Verificar instalação
dart --version
# Saída esperada: Dart SDK version: 3.x.x
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

: Instalação no macOS

BASH
# Instalar via Homebrew
brew tap dart-lang/dart
brew install dart

# Verificar instalação
dart --version
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

: Instalação no Linux (Debian/Ubuntu)

BASH
# Adicionar repositório APT do Dart
sudo apt-get update
sudo apt-get install apt-transport-https
sudo sh -c 'wget -qO- https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
sudo sh -c 'wget -qO- https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'

# Instalar Dart SDK
sudo apt-get update
sudo apt-get install dart

# Verificar instalação
dart --version
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

(2) Verificação da Configuração do PATH

Após a instalação, sempre verifique se o comando dart está acessível:

BASH
# Verificar se dart está no PATH
which dart    # macOS/Linux
where dart    # Windows

# Se não encontrado, adicionar ao PATH manualmente
# macOS/Linux: adicionar ao ~/.bashrc ou ~/.zshrc
export PATH="$PATH:/usr/lib/dart/bin"

# Windows: adicionar o diretório bin do Dart SDK ao PATH do Sistema
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.
Item de Verificação Comando Resultado Esperado
Versão do SDK dart --version Dart SDK version: 3.x.x
Verificação de Caminho which dart /usr/lib/dart/bin/dart
Comando pub pub --version Pub 3.x.x

4. Configuração do VS Code

(1) Instalação de Extensões

Extensão Propósito Obrigatória
Dart Destaque de sintaxe, autocompletar, depuração Sim
Flutter (Opcional) Suporte ao desenvolvimento Flutter Conforme necessário
Dart Import (Opcional) Ordenação automática de imports Recomendada

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

: Configuração de Depuração do VS Code

Crie .vscode/launch.json na raiz do seu projeto:

JSON
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Dart: Run",
      "type": "dart",
      "request": "launch",
      "program": "bin/main.dart"
    }
  ]
}

(2) Atalhos Comuns do VS Code

Atalho Função
F5 Iniciar Depuração
Ctrl+F5 Executar Sem Depuração
Ctrl+Shift+P → "Dart: Run" Executar a partir da Paleta de Comandos
Ctrl+. Correção Rápida
Ctrl+Space Autocompletar Inteligente

5. Quatro Comandos Principais

(1) dart run

Executa diretamente um arquivo ou projeto Dart usando modo JIT, suportando hot reload.

BASH
# Executar um único arquivo
dart run bin/main.dart

# Executar um projeto (usando pubspec.yaml)
dart run
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

(2) dart compile

Compila código Dart em diferentes artefatos alvo.

Subcomando Artefato Propósito
dart compile exe Executável autônomo Distribuição de ferramenta CLI
dart compile js Arquivo JavaScript Deploy web
dart compile aot-snapshot Snapshot AOT Tempo de execução de alto desempenho

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

: Compilar para Executável

BASH
# Compilar para executável autônomo
dart compile exe bin/main.dart -o datapipeline

# Executar o executável
./datapipeline
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

(3) dart format

Formata automaticamente o código, seguindo o guia de estilo oficial do Dart.

BASH
# Formatar todos os arquivos Dart no diretório atual
dart format .

# Formatar arquivo específico
dart format lib/main.dart

# Verificar formatação sem modificar arquivos
dart format --set-exit-if-changed .
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

(4) dart analyze

Realiza análise estática no código para encontrar problemas potenciais.

BASH
# Analisar projeto atual
dart analyze

# Analisar com infos fatais
dart analyze --fatal-infos
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.
Comando Propósito Estágio de Desenvolvimento
dart run Executar Código Desenvolvimento
dart compile Compilar Artefatos Release
dart format Formatar Código Antes do Commit
dart analyze Análise Estática Contínuo

6. pubspec.yaml e Templates de Projeto

(1) Criando Projetos com dart create

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

: Criar Projeto

BASH
# Criar aplicação de console
dart create -t console-simple my_pipeline

# Estrutura do projeto
# my_pipeline/
# ├── bin/
# │   └── my_pipeline.dart    # Ponto de entrada
# ├── lib/
# │   └── my_pipeline.dart    # Código da biblioteca
# ├── test/
# │   └── my_pipeline_test.dart
# ├── pubspec.yaml            # Dependências
# └── analysis_options.yaml   # Regras de lint
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

(2) Estrutura do pubspec.yaml Explicada

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

: Configuração do pubspec.yaml

YAML
name: datapipeline
description: Uma ferramenta CLI para análise de dados de e-commerce
version: 1.0.0

environment:
  sdk: ^3.0.0

dependencies:
  args: ^2.4.2
  http: ^1.2.0
  csv: ^6.0.0

dev_dependencies:
  test: ^1.24.0
  build_runner: ^2.4.0
Campo Significado Exemplo
name Nome do pacote datapipeline
environment Restrição de versão do SDK sdk: ^3.0.0
dependencies Dependências de tempo de execução http: ^1.2.0
dev_dependencies Dependências de desenvolvimento test: ^1.24.0

7. O Primeiro Hello World da Alice

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

: Hello World

DART
// Primeiro programa Dart da Alice
void main() {
  print('Hello, Dart!');
  print('Bem-vindo ao projeto DataPipeline.');
}
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

Saída:

TEXT 📖 Somente leitura
Hello, Dart!
Bem-vindo ao projeto DataPipeline.

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

: Hello World com Argumentos de Linha de Comando

DART
// Hello World com argumentos de linha de comando
void main(List<String> arguments) {
  final name = arguments.isNotEmpty ? arguments[0] : 'World';
  print('Hello, $name!');

  if (arguments.length > 1) {
    print('Argumentos adicionais: ${arguments.sublist(1)}');
  }
}
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

Saída (usando dart run bin/main.dart Alice --verbose):

TEXT 📖 Somente leitura
Hello, Alice!
Argumentos adicionais: [--verbose]

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

: Usando o Pacote args para Parsing de Argumentos

DART
// Parsing de argumentos CLI profissional com pacote args
import 'package:args/args.dart';

void main(List<String> arguments) {
  final parser = ArgParser()
    ..addOption('name', abbr: 'n', defaultsTo: 'World', help: 'Seu nome')
    ..addFlag('verbose', abbr: 'v', defaultsTo: false, help: 'Mostrar saída detalhada');

  final results = parser.parse(arguments);
  final name = results['name'] as String;
  final verbose = results['verbose'] as bool;

  print('Hello, $name!');
  if (verbose) {
    print('Executando em modo verbose');
  }
}
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

8. Exemplo Completo: Inicialização do Projeto DataPipeline

DART
// ============================================
// DataPipeline CLI - Configuração Inicial
// Um esqueleto de ferramenta CLI profissional
// ============================================

import 'package:args/args.dart';

const String version = '1.0.0';

void main(List<String> arguments) {
  final parser = ArgParser()
    ..addFlag('version', abbr: 'v', negatable: false, help: 'Mostrar versão')
    ..addFlag('help', abbr: 'h', negatable: false, help: 'Mostrar ajuda')
    ..addOption('input', abbr: 'i', help: 'Caminho da fonte de dados de entrada')
    ..addOption('output', abbr: 'o', defaultsTo: 'report.json', help: 'Caminho do arquivo de saída')
    ..addOption('format', allowed: ['json', 'csv', 'html'], defaultsTo: 'json', help: 'Formato de saída')
    ..addFlag('verbose', help: 'Ativar log detalhado');

  try {
    final results = parser.parse(arguments);

    if (results['help'] as bool) {
      print('DataPipeline - Ferramenta CLI de análise de e-commerce');
      print(parser.usage);
      return;
    }

    if (results['version'] as bool) {
      print('DataPipeline v$version');
      return;
    }

    final input = results['input'] as String?;
    final output = results['output'] as String;
    final format = results['format'] as String;
    final verbose = results['verbose'] as bool;

    if (input == null) {
      print('Erro: --input é obrigatório');
      print(parser.usage);
      return;
    }

    print('=== DataPipeline v$version ===');
    if (verbose) {
      print('Input:  $input');
      print('Output: $output');
      print('Format: $format');
    }
    print('Processando dados de: $input');
    print('Relatório salvo em: $output (formato $format)');
  } on FormatException catch (e) {
    print('Erro: ${e.message}');
    print(parser.usage);
  }
}
TEXT 📖 Somente leitura
> **Saída:** Execute em um DartPad local ou com `dart run`. Todos os exemplos do curso Dart são baseados em Dart 3.x / Flutter 3.x. Os resultados podem variar ligeiramente com a versão do SDK.

Saída (usando dart run bin/main.dart -i orders.csv -o report.json --verbose):

TEXT 📖 Somente leitura
=== DataPipeline v1.0.0 ===
Input:  orders.csv
Output: report.json
Format: json
Processando dados de: orders.csv
Relatório salvo em: report.json (formato json)

❓ Perguntas Frequentes

P: O que fazer se o comando dart não for encontrado após a instalação? R: Verifique se a variável de ambiente PATH inclui o diretório bin do Dart SDK. Use where dart no Windows, which dart no macOS/Linux para localizá-lo.

P: Preciso instalar o Flutter SDK? R: Se você está apenas aprendendo a linguagem Dart em si, não. Basta instalar o Dart SDK independente. Você pode instalar o Flutter SDK mais tarde quando começar a aprender Flutter (ele inclui o Dart SDK).

P: Qual a diferença entre dart run e dart compile exe? R: dart run usa compilação JIT para execução, ideal para desenvolvimento. dart compile exe compila em um executável autônomo que pode rodar sem o SDK, ideal para distribuição.

P: Preciso instalar as extensões Dart e Flutter para o VS Code? R: A extensão Dart é obrigatória. A extensão Flutter só é necessária para desenvolvimento de apps Flutter, não para projetos Dart puros.

P: O que significa o símbolo ^ no pubspec.yaml? R: ^ indica compatibilidade dentro da versão principal. Por exemplo, ^1.2.0 significa >=1.2.0 <2.0.0, permitindo upgrades de versões minor e patch.

P: O dart analyze mostra muitos avisos de nível info. Preciso corrigir todos? R: Mensagens de nível info são sugestões e não afetam a execução. É recomendado corrigir warnings e erros. Mensagens info dependem das convenções da equipe.

P: Como escolher um template do dart create? R: Use console-simple para ferramentas CLI, package-simple para bibliotecas, e flutter-create para Flutter. Este tutorial usa console-simple.


📖 Resumo


📝 Exercícios

  1. Básico (Dificuldade ⭐): Instale o Dart SDK, execute dart --version para confirmar que a versão é ≥ 3.0.0, depois use dart create hello_dart para criar e executar seu primeiro projeto.
  2. Intermediário (Dificuldade ⭐⭐): Configure o launch.json do VS Code para executar programas Dart com a tecla F5 e tente definir breakpoints para depuração.
  3. Desafio (Dificuldade ⭐⭐⭐): Escreva uma ferramenta CLI usando o pacote args que suporte um parâmetro --count N, imprimindo "Hello, DataPipeline!" N vezes, e compile-a em um executável com dart compile exe.

← Aula Anterior | Próxima Aula →

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%