Jornada
Aprenda Dart
Aprenda Dart do zero com um curso online grátis e interativo. Domine variáveis, condicionais, loops, funções, estruturas de dados e organização de projetos com desafios práticos, projetos reais, dicas de IA e um certificado ao concluir.
16,844+ codders inscritos
Esta jornada inclui
Ajuda de codificação com IA
Lições interativas e práticas
Narração em áudio em todas as lições
Questionários para testar seu conhecimento
Certificado grátis de conclusão
Programa
3 seções269 lições240 desafios1,689 perguntas de quiz01Seção 1
Fundamentos
Construa uma base sólida com conceitos essenciais e habilidades básicasCOMEÇAR A APRENDERIntrodução ao Dart
4 lições224- 01O que é Dart?Desafio
- 02A função mainQuizÁudio
- 03Imprimindo SaídaDesafioQuizÁudio
- 04Comentários no CódigoQuizÁudio
Variáveis e Tipos de Dados Básicos
11 lições1075- 01O que são Variáveis?QuizÁudio
- 02StringsDesafioQuizÁudio
- 03Inteiros (int)DesafioQuizÁudio
- 04Double (double)DesafioQuizÁudio
- 05Booleanos (bool)DesafioQuizÁudio
- 06Inferência de Tipo com 'var'DesafioQuizÁudio
- 07Variáveis finalDesafioQuizÁudio
- 08Variáveis constantesDesafioQuizÁudio
- 09Convenções de NomenclaturaDesafioQuizÁudio
- 10Null Safety BásicaDesafioQuizÁudio
- 11Resumo - Declarando VariáveisDesafio
Operadores Parte 1
6 lições638- 01Operadores AritméticosDesafioQuizÁudio
- 02Divisão InteiraDesafioQuizÁudio
- 03Operador MóduloDesafioQuizÁudio
- 04Incremento e DecrementoDesafioQuizÁudio
- 05Atalhos de AtribuiçãoDesafioQuizÁudio
- 06Resumo - Cálculos SimplesDesafio
Operadores Parte 2
6 lições636- 01Operadores de ComparaçãoDesafioQuizÁudio
- 02AND LógicoDesafioQuizÁudio
- 03OR LógicoDesafioQuizÁudio
- 04NOT LógicoDesafioQuizÁudio
- 05Operadores de Teste de TipoDesafioQuizÁudio
- 06Resumo - Fazendo ComparaçõesDesafio
Operadores Parte 3
3 lições320- 01Operador de NulidadeDesafioQuizÁudio
- 02Acesso de NulidadeDesafioQuizÁudio
- 03Operador CondicionalDesafioQuizÁudio
Fluxo de Controle - Tomada de Decisões
6 lições636- 01A Instrução 'if'DesafioQuizÁudio
- 02A Instrução 'else'DesafioQuizÁudio
- 03A Instrução 'else if'DesafioQuizÁudio
- 04Resumo - Decisões SimplesDesafio
- 05Instruções 'if' AninhadasDesafioQuizÁudio
- 06A Instrução 'switch'DesafioQuizÁudio
Trabalhando com Strings
5 lições538- 01Concatenação de StringsDesafioQuizÁudio
- 02Interpolação de StringsDesafioQuizÁudio
- 03Strings Multi-linhaDesafioQuizÁudio
- 04Propriedades de StringsDesafioQuizÁudio
- 05Métodos Básicos de StringsDesafioQuizÁudio
Fluxo de Controle - Laços
6 lições637- 01O Laço 'for'DesafioQuizÁudio
- 02O Laço 'while'DesafioQuizÁudio
- 03O Laço 'do-while'DesafioQuizÁudio
- 04Usando 'break' em LaçosDesafioQuizÁudio
- 05Usando 'continue' em LaçosDesafioQuizÁudio
- 06Resumo - Repetindo CódigoDesafio
Coleções - Listas Básicas
8 lições759- 01O que são Listas?QuizÁudio
- 02Criando uma ListaDesafioQuizÁudio
- 03Acessando por ÍndiceDesafioQuizÁudio
- 04Obtendo o Tamanho da ListaDesafioQuizÁudio
- 05Adicionando ElementosDesafioQuizÁudio
- 06Removendo ElementosDesafioQuizÁudio
- 07Verificando se uma Lista Está VaziaDesafioQuizÁudio
- 08Iterando Sobre uma ListaDesafioQuizÁudio
Coleções - Básicos de Mapas
8 lições757- 01O que são Mapas?QuizÁudio
- 02Criando um MapaDesafioQuizÁudio
- 03Acessando Valores por ChaveDesafioQuizÁudio
- 04Pares Chave-ValorDesafioQuizÁudio
- 05Obtendo o Tamanho do MapaDesafioQuizÁudio
- 06Obtendo as ChavesDesafioQuizÁudio
- 07Obtendo os ValoresDesafioQuizÁudio
- 08Verificando se uma Chave ExisteDesafioQuizÁudio
Fundamentos de Funções
8 lições753- 01O que são Funções?QuizÁudio
- 02Definindo uma Função BásicaDesafioQuizÁudio
- 03Chamando uma FunçãoDesafioQuizÁudio
- 04Funções com ParâmetrosDesafioQuizÁudio
- 05Funções que Retornam ValoresDesafioQuizÁudio
- 06A Palavra-chave 'void'DesafioQuizÁudio
- 07Sintaxe ArrowDesafioQuizÁudio
- 08Resumo - Funções SimplesDesafio
Funções Avançadas
5 lições532- 01Parâmetros Posicionais OpcionaisDesafioQuizÁudio
- 02Parâmetros NomeadosDesafioQuizÁudio
- 03Parâmetros Nomeados ObrigatóriosDesafioQuizÁudio
- 04Valores Padrão de ParâmetrosDesafioQuizÁudio
- 05Resumo - Parâmetros de FunçãoDesafio
Null Safety em Profundidade
6 lições639- 01Entendendo NullDesafioQuizÁudio
- 02Tipos NulláveisDesafioQuizÁudio
- 03Tipos Não NulláveisDesafioQuizÁudio
- 04Operador de Asserção de NullDesafioQuizÁudio
- 05Inicialização TardiaDesafioQuizÁudio
- 06Resumo - Lidando com Null de Forma SeguraDesafio
Conversão de Tipos
4 lições430- 01Convertendo String para intDesafioQuizÁudio
- 02Convertendo String para doubleDesafioQuizÁudio
- 03Convertendo Números para StringDesafioQuizÁudio
- 04Tratando Erros de ConversãoDesafioQuizÁudio
Projeto: Calculadora Simples
Projeto5 lições1- 01ConfigurandoDesafio
- 02Declarando NúmeroProjeto
- 03Criando uma OperaçãoProjeto
- 04Realizando CálculoProjeto
- 05Exibindo ResultadoProjeto
Desafios Fundamentais
3 lições3- 01Desafio: Lista de cálculosDesafio
- 02Desafio: Soma de númerosDesafio
- 03Desafio: Encontrar produtoDesafio
02Seção 2
Lógica & Fluxo
Domine a programação avançada em Dart com foco em estruturas de dados e controle de fluxo. Aprenda a trabalhar com arrays complexos, coleções, tratamento de erros e gerenciamento de tempo.COMEÇAR A APRENDERManipulação Avançada de Listas
9 lições959- 01Propriedades de Lista: first & lastDesafioQuiz
- 02Estado da Lista: isEmpty & isNotEmptyDesafioQuiz
- 03Invertendo uma ListaDesafioQuiz
- 04Adicionando a uma Lista: insertDesafioQuiz
- 05Remoção em Listas: removeWhereDesafioQuiz
- 06Buscando em uma Lista: indexOfDesafioQuiz
- 07Ordenando uma ListaDesafioQuiz
- 08Embaralhando uma ListaDesafioQuiz
- 09Recapitulação - Organizador de ListasDesafio
Operações Funcionais em Listas
7 lições746- 01Transformando com 'map'DesafioQuiz
- 02Filtrando com 'where'DesafioQuiz
- 03Usando '.toList()'DesafioQuiz
- 04Verificando Condições com 'any'DesafioQuiz
- 05Condições com 'every'DesafioQuiz
- 06Encontrando com 'firstWhere'DesafioQuiz
- 07Recapitulação - Filtragem de DadosDesafio
Conjuntos
9 lições864- 01O que é um Conjunto?Quiz
- 02Criando um ConjuntoDesafioQuiz
- 03Adicionando e Removendo de ConjuntosDesafioQuiz
- 04Verificando Elementos em um ConjuntoDesafioQuiz
- 05Convertendo uma Lista para um ConjuntoDesafioQuiz
- 06União de ConjuntosDesafioQuiz
- 07Interseção de ConjuntosDesafioQuiz
- 08Diferença de ConjuntosDesafioQuiz
- 09Recapitulação - Lista de Convidados ÚnicosDesafio
Manipulação Avançada de Mapas
7 lições745- 01Iterando sobre um MapDesafioQuiz
- 02Verificando Chaves e ValoresDesafioQuiz
- 03Propriedades do Map: keys & valuesDesafioQuiz
- 04Adição Condicional: putIfAbsentDesafioQuiz
- 05Removendo Entradas de um MapDesafioQuiz
- 06Maps AninhadosDesafioQuiz
- 07Recapitulação - Atualização de InventárioDesafio
Projeto: Cálculo de Carrinho de Compras
Projeto5 lições1- 01Configuração do ProjetoDesafio
- 02Adicionando Itens ao CarrinhoProjeto
- 03Calculando o Custo TotalProjeto
- 04Aplicando um DescontoProjeto
- 05Exibindo o Recibo FinalProjeto
Tratamento de Erros Básico
6 lições541- 01O que são Exceções?Quiz
- 02O Bloco 'try-catch'DesafioQuiz
- 03Capturando Exceções com 'on'DesafioQuiz
- 04O Bloco 'finally'DesafioQuiz
- 05Lançando uma ExceçãoDesafioQuiz
- 06Recapitulação - Divisão SeguraDesafio
Funções Avançadas
7 lições646- 01Funções AnônimasDesafioQuiz
- 02Passando Funções como ArgumentosDesafioQuiz
- 03Entendendo ClosuresDesafioQuiz
- 04Introdução à RecursividadeQuiz
- 05Função Recursiva: Contagem RegressivaDesafioQuiz
- 06Função Recursiva: FatorialDesafioQuiz
- 07Recapitulação - Processador de ListasDesafio
Projeto: Analisador de Texto Simples
Projeto7 lições18- 01Visão Geral e Configuração do ProjetoDesafioQuiz
- 02Contagem de CaracteresProjeto
- 03Dividindo o Texto em PalavrasProjeto
- 04Contagem de PalavrasProjeto
- 05Contagem de Palavras ÚnicasProjeto
- 06Contador de Frequência de PalavrasProjeto
- 07Exibindo a AnáliseProjeto
Enumerações (Enums)
5 lições433- 01O que são Enums?Quiz
- 02Definindo um Enum simplesDesafioQuiz
- 03Usando Enums em variáveisDesafioQuiz
- 04Enums em instruções 'switch'DesafioQuiz
- 05Recapitulação - SemáforoDesafio
Desafios Finais
3 lições3- 01Desafio: Ordenador de NotasDesafio
- 02Desafio: Contador de VogaisDesafio
- 03Desafio: FizzBuzzDesafio
03Seção 3
Programação Orientada a Objetos
Descubra como organizar o código com classes, objetos e estruturas reutilizáveisCOMEÇAR A APRENDERFundamentos de POO
9 lições971- 01Arquivos ExternosDesafioQuiz
- 02Bibliotecas e ImportaçõesDesafioQuiz
- 03Introdução à POODesafioQuiz
- 04Classes vs ObjetosDesafioQuiz
- 05A Palavra-chave thisDesafioQuiz
- 06MétodosDesafioQuiz
- 07Variáveis de InstânciaDesafioQuiz
- 08Fundamentos de ConstrutoresDesafioQuiz
- 09Recapitulação - Calculadora SimplesDesafio
Construtores em Dart
7 lições753- 01Construtor PadrãoDesafioQuiz
- 02Construtores NomeadosDesafioQuiz
- 03Listas de InicializaçãoDesafioQuiz
- 04Construtores ConstantesDesafioQuiz
- 05Construtores FactoryDesafioQuiz
- 06Construtores de RedirecionamentoDesafioQuiz
- 07Recapitulação - Shape BuilderDesafio
Propriedades de Classe
6 lições644- 01Membros de Instância vs EstáticosDesafioQuiz
- 02Campos Final & ConstDesafioQuiz
- 03Variáveis LateDesafioQuiz
- 04Métodos e Campos EstáticosDesafioQuiz
- 05Getters e SettersDesafioQuiz
- 06Recapitulação - Gerenciador de Conta BancáriaDesafio
Null Safety
7 lições754- 01Introdução ao Null SafetyDesafioQuiz
- 02Nullable vs Non-NullableDesafioQuiz
- 03Os Operadores ? e !DesafioQuiz
- 04Palavra-chave Late e Null SafetyDesafioQuiz
- 05Operadores Null-AwareDesafioQuiz
- 06Null Safety em ClassesDesafioQuiz
- 07Recapitulação - Sistema de Perfil de UsuárioDesafio
Encapsulamento
6 lições641- 01Membros Públicos vs PrivadosDesafioQuiz
- 02A Convenção do Prefixo _DesafioQuiz
- 03Privacidade em Nível de BibliotecaDesafioQuiz
- 04Aprofundamento em Getters & SettersDesafioQuiz
- 05Ocultação de InformaçãoDesafioQuiz
- 06Recapitulação - Registros de EstudantesDesafio
Herança
7 lições750- 01Herança BásicaDesafioQuiz
- 02A Palavra-chave superDesafioQuiz
- 03Sobrescrita de MétodoDesafioQuiz
- 04A Anotação @overrideDesafioQuiz
- 05A Palavra-chave final para ClassesDesafioQuiz
- 06Construtores e HerançaDesafioQuiz
- 07Recapitulação - Hierarquia de FuncionáriosDesafio
Classes Abstratas e Interfaces
7 lições753- 01Classes AbstratasDesafioQuiz
- 02Métodos AbstratosDesafioQuiz
- 03Interfaces em DartDesafioQuiz
- 04Interfaces ImplícitasDesafioQuiz
- 05Implementando vs EstendendoDesafioQuiz
- 06Múltiplas InterfacesDesafioQuiz
- 07Recapitulação - Calculadora de FormasDesafio
Mixins
7 lições752- 01Introdução aos MixinsDesafioQuiz
- 02Criando MixinsDesafioQuiz
- 03Usando Múltiplos MixinsDesafioQuiz
- 04Palavra-chave on em MixinsDesafioQuiz
- 05Mixin vs HerançaDesafioQuiz
- 06Mixin vs InterfaceDesafioQuiz
- 07Recapitulação - Sistema AnimalDesafio
Polimorfismo
6 lições643- 01Fundamentos do PolimorfismoDesafioQuiz
- 02Polimorfismo via InterfacesDesafioQuiz
- 03Verificação de Tipos em Tempo de ExecuçãoDesafioQuiz
- 04Os Operadores is & asDesafioQuiz
- 05Palavra-chave CovariantDesafioQuiz
- 06Recapitulação - Processador de PagamentosDesafio
Coleções e Generics
7 lições754- 01Visão Geral de List, Set e MapDesafioQuiz
- 02Coleções Type-SafeDesafioQuiz
- 03Classes GenéricasDesafioQuiz
- 04Métodos GenéricosDesafioQuiz
- 05Restrições de GenericsDesafioQuiz
- 06Iterable e IteratorDesafioQuiz
- 07Recapitulação - Armazenamento GenéricoDesafio
Métodos Especiais
6 lições643- 01Sobrescrita de toString()DesafioQuiz
- 02Sobrescrita de hashCode & ==DesafioQuiz
- 03Interface ComparableDesafioQuiz
- 04Método call()DesafioQuiz
- 05Sobrescrita de noSuchMethodDesafioQuiz
- 06Recapitulação - Coleção PersonalizadaDesafio
POO Assíncrona
6 lições645- 01Futures e async/awaitDesafioQuiz
- 02Fundamentos de StreamsDesafioQuiz
- 03Stream ControllersDesafioQuiz
- 04Construtores AssíncronosDesafioQuiz
- 05Async em Métodos de ClasseDesafioQuiz
- 06Recapitulação - Data FetcherDesafio
Conceitos Avançados de POO
7 lições764- 01Composição vs HerançaDesafioQuiz
- 02Métodos de ExtensãoDesafioQuiz
- 03Classes ChamáveisDesafioQuiz
- 04Classes Seladas (Dart 3)DesafioQuiz
- 05Records (Dart 3)DesafioQuiz
- 06Patterns & Matching (3.0)DesafioQuiz
- 07Enums com MétodosDesafioQuiz
Padrões de Projeto Parte 1
5 lições543- 01Introdução aos Padrões de ProjetoDesafioQuiz
- 02Padrão SingletonDesafioQuiz
- 03Padrão FactoryDesafioQuiz
- 04Padrão ObserverDesafioQuiz
- 05Padrão StrategyDesafioQuiz
Padrões de Projeto Parte 2
7 lições763- 01Padrão CommandDesafioQuiz
- 02Padrão AdapterDesafioQuiz
- 03Padrão DecoratorDesafioQuiz
- 04Padrão Template MethodDesafioQuiz
- 05Padrão StateDesafioQuiz
- 06Padrão CompositeDesafioQuiz
- 07Padrão RepositoryDesafioQuiz
Projeto: Gerenciamento de Biblioteca
Projeto6 lições1- 01Visão Geral do ProjetoDesafio
- 02Classes Livro e UsuárioProjeto
- 03Sistema de EmpréstimosProjeto
- 04Funcionalidade de BuscaProjeto
- 05Interface AdministrativaProjeto
- 06Testes e IntegraçãoProjeto
Desafios Finais
4 lições4- 01Plataforma de E-LearningDesafio
- 02Sistema BancárioDesafio
- 03Sistema de Personagens de JogoDesafio
- 04Serviço de Aluguel de VeículosDesafio
Por que aprender Dart com a Coddy
- Curso de Dart online e grátis: sem instalação, sem configurar ferramentas e sem barreiras para começar. Abra o navegador e pratique desde a primeira aula.
- Aulas práticas de Dart que vão além de um tutorial: cada conceito vem com um desafio para escrever código real e aprender fazendo.
- As dicas de IA ajudam quando você trava em um exercício de Dart, mostrando o próximo passo sem entregar a resposta completa.
- Certificado grátis de conclusão para compartilhar no LinkedIn ou adicionar ao currículo como prova de que você completou um curso interativo de Dart.
Perguntas frequentes sobre aprender Dart
Dart é fácil de aprender?
Sim, você pode começar com Dart mesmo sem experiência. A Coddy divide os conceitos em exercícios curtos para você entender a sintaxe, praticar variáveis, condicionais, loops, funções, estruturas de dados e organização de projetos e ganhar confiança aos poucos.
Quanto tempo leva para aprender Dart?
Os fundamentos de Dart geralmente podem ser aprendidos em uma ou duas semanas de prática diária. Para criar projetos reais com segurança, reserve de um a três meses, dependendo do seu ritmo.
Onde posso aprender Dart online grátis?
A Coddy oferece um curso online grátis de Dart com aulas, desafios de código, quizzes e projetos. Não é preciso instalar nada: tudo funciona no navegador.
Como aprender Dart rápido?
A forma mais rápida é praticar todos os dias. Na Coddy você alterna explicação curta, exercício imediato e feedback com dicas de IA, passando mais tempo escrevendo Dart do que assistindo a vídeos longos.
Recebo um certificado de Dart ao terminar?
Sim. Ao concluir o curso de Dart na Coddy, você recebe um certificado grátis de conclusão para compartilhar no LinkedIn ou incluir no currículo.
O que posso criar depois de aprender Dart?
Depois do curso, você poderá criar scripts úteis, pequenos apps, automações, jogos simples e projetos para mostrar no portfólio. Também terá uma base sólida para avançar para tópicos mais profissionais.