Recorrido
Aprende Dart
Aprende Dart desde cero con un curso online gratis e interactivo. Domina variables, condicionales, bucles, funciones, estructuras de datos y organización de proyectos con retos prácticos, proyectos reales, pistas de IA y un certificado al terminar.
16,844+ codders inscritos
Este recorrido incluye
Ayuda de codificación con IA
Lecciones interactivas prácticas
Narración de audio en cada lección
Cuestionarios para poner a prueba tu conocimiento
Certificado gratuito de finalización
Programa
3 secciones269 lecciones240 retos1,689 preguntas de quiz01Sección 1
Fundamentos
Construye una base sólida con conceptos esenciales y habilidades básicasEMPEZAR A APRENDERIntroducción a Dart
4 lecciones224- 01¿Qué es Dart?Reto
- 02La función mainQuizAudio
- 03Imprimir salidaRetoQuizAudio
- 04Comentarios de códigoQuizAudio
Variables y Tipos de Datos Básicos
11 lecciones1075- 01¿Qué son las Variables?QuizAudio
- 02CadenasRetoQuizAudio
- 03Enteros (int)RetoQuizAudio
- 04Dobles (double)RetoQuizAudio
- 05Booleanos (bool)RetoQuizAudio
- 06Inferencia de Tipos con 'var'RetoQuizAudio
- 07Variables FinalesRetoQuizAudio
- 08Variables ConstantesRetoQuizAudio
- 09Convenciones de NombresRetoQuizAudio
- 10Seguridad Básica ante NullRetoQuizAudio
- 11Resumen - Declarando VariablesReto
Operadores Parte 1
6 lecciones638- 01Operadores AritméticosRetoQuizAudio
- 02División EnteraRetoQuizAudio
- 03Operador MóduloRetoQuizAudio
- 04Incremento y DecrementoRetoQuizAudio
- 05Atajos de AsignaciónRetoQuizAudio
- 06Resumen - Cálculos SimplesReto
Operadores Parte 2
6 lecciones636- 01Operadores de ComparaciónRetoQuizAudio
- 02AND LógicoRetoQuizAudio
- 03OR LógicoRetoQuizAudio
- 04NOT LógicoRetoQuizAudio
- 05Operadores de Prueba de TipoRetoQuizAudio
- 06Resumen - Realizando ComparacionesReto
Operadores Parte 3
3 lecciones320- 01Operador null-awareRetoQuizAudio
- 02Acceso null-awareRetoQuizAudio
- 03Operador condicionalRetoQuizAudio
Flujo de Control - Toma de Decisiones
6 lecciones636- 01La sentencia 'if'RetoQuizAudio
- 02La sentencia 'else'RetoQuizAudio
- 03La sentencia 'else if'RetoQuizAudio
- 04Resumen - Decisiones SimplesReto
- 05Sentencias 'if' AnidadasRetoQuizAudio
- 06La sentencia 'switch'RetoQuizAudio
Trabajando con Cadenas
5 lecciones538- 01Concatenación de CadenasRetoQuizAudio
- 02Interpolación de CadenasRetoQuizAudio
- 03Cadenas MultilíneaRetoQuizAudio
- 04Propiedades de CadenasRetoQuizAudio
- 05Métodos Básicos de CadenasRetoQuizAudio
Flujo de control - Bucles
6 lecciones637- 01El bucle 'for'RetoQuizAudio
- 02El bucle 'while'RetoQuizAudio
- 03El bucle 'do-while'RetoQuizAudio
- 04Usando 'break' en buclesRetoQuizAudio
- 05Usando 'continue' en buclesRetoQuizAudio
- 06Resumen - Código repetitivoReto
Colecciones - Listas Básicas
8 lecciones759- 01¿Qué son las listas?QuizAudio
- 02Creando una listaRetoQuizAudio
- 03Accediendo por índiceRetoQuizAudio
- 04Obteniendo la longitud de la listaRetoQuizAudio
- 05Agregando elementosRetoQuizAudio
- 06Eliminando elementosRetoQuizAudio
- 07Comprobando si una lista está vacíaRetoQuizAudio
- 08Iterando sobre una listaRetoQuizAudio
Colecciones - Conceptos básicos de Mapas
8 lecciones757- 01¿Qué son los Mapas?QuizAudio
- 02Creando un MapaRetoQuizAudio
- 03Accediendo a Valores por ClaveRetoQuizAudio
- 04Pares Clave-ValorRetoQuizAudio
- 05Obteniendo el Tamaño del MapaRetoQuizAudio
- 06Obteniendo las ClavesRetoQuizAudio
- 07Obteniendo los ValoresRetoQuizAudio
- 08Verificando si una Clave ExisteRetoQuizAudio
Fundamentos de Funciones
8 lecciones753- 01¿Qué son las funciones?QuizAudio
- 02Definiendo una función básicaRetoQuizAudio
- 03Llamando a una funciónRetoQuizAudio
- 04Funciones con parámetrosRetoQuizAudio
- 05Funciones que devuelven valoresRetoQuizAudio
- 06La palabra clave 'void'RetoQuizAudio
- 07Sintaxis de flechaRetoQuizAudio
- 08Resumen - Funciones simplesReto
Funciones Avanzadas
5 lecciones532- 01Parámetros Posicionales OpcionalesRetoQuizAudio
- 02Parámetros NombradosRetoQuizAudio
- 03Parámetros Nombrados RequeridosRetoQuizAudio
- 04Valores de Parámetro por DefectoRetoQuizAudio
- 05Resumen - Parámetros de FunciónReto
Null Safety en Profundidad
6 lecciones639- 01Comprendiendo NullRetoQuizAudio
- 02Tipos NullableRetoQuizAudio
- 03Tipos No NullableRetoQuizAudio
- 04Operador de Afirmación NullRetoQuizAudio
- 05Inicialización TardíaRetoQuizAudio
- 06Resumen - Manejo Seguro de NullReto
Conversión de tipos
4 lecciones430- 01Convertir String a intRetoQuizAudio
- 02Convertir String a doubleRetoQuizAudio
- 03Convertir números a StringRetoQuizAudio
- 04Manejar errores de conversiónRetoQuizAudio
Proyecto: Calculadora Simple
Proyecto5 lecciones1- 01ConfigurandoReto
- 02Declarando NúmeroProyecto
- 03Creando una OperaciónProyecto
- 04Realizando CálculoProyecto
- 05Mostrando ResultadoProyecto
Desafíos Fundamentales
3 lecciones3- 01Desafío: Lista de cálculosReto
- 02Desafío: Suma de númerosReto
- 03Desafío: Encontrar productoReto
02Sección 2
Lógica y Flujo
Domina la programación avanzada en Dart con un enfoque en estructuras de datos y control de flujo. Aprende a trabajar con arrays complejos, colecciones, manejo de errores y gestión del tiempo.EMPEZAR A APRENDERManipulación avanzada de listas
9 lecciones959- 01Propiedades de listas: first y lastRetoQuiz
- 02Estado de la lista: isEmpty y isNotEmptyRetoQuiz
- 03Invertir una listaRetoQuiz
- 04Añadir a una lista: insertRetoQuiz
- 05Eliminación en listas: removeWhereRetoQuiz
- 06Búsqueda en una lista: indexOfRetoQuiz
- 07Ordenar una listaRetoQuiz
- 08Mezclar una listaRetoQuiz
- 09Resumen - Organizador de listasReto
Operaciones funcionales con listas
7 lecciones746- 01Transformar con 'map'RetoQuiz
- 02Filtrar con 'where'RetoQuiz
- 03Uso de '.toList()'RetoQuiz
- 04Comprobar condiciones con 'any'RetoQuiz
- 05Condiciones con 'every'RetoQuiz
- 06Búsqueda con 'firstWhere'RetoQuiz
- 07Resumen - Filtrado de datosReto
Conjuntos
9 lecciones864- 01¿Qué es un Conjunto?Quiz
- 02Crear un ConjuntoRetoQuiz
- 03Añadir y eliminar elementos de un ConjuntoRetoQuiz
- 04Comprobar elementos en un ConjuntoRetoQuiz
- 05Convertir una lista en un ConjuntoRetoQuiz
- 06Unión de ConjuntosRetoQuiz
- 07Intersección de ConjuntosRetoQuiz
- 08Diferencia de ConjuntosRetoQuiz
- 09Resumen - Lista de invitados únicaReto
Manipulación avanzada de mapas
7 lecciones745- 01Iterar sobre un mapaRetoQuiz
- 02Comprobación de claves y valoresRetoQuiz
- 03Propiedades del mapa: keys y valuesRetoQuiz
- 04Adición condicional: putIfAbsentRetoQuiz
- 05Eliminar entradas de un mapaRetoQuiz
- 06Mapas anidadosRetoQuiz
- 07Resumen - Actualización de inventarioReto
Proyecto: Calculadora de carrito de compras
Proyecto5 lecciones1- 01Configuración del proyectoReto
- 02Agregar artículos al carritoProyecto
- 03Calcular el costo totalProyecto
- 04Aplicar un descuentoProyecto
- 05Mostrar el recibo finalProyecto
Manejo básico de errores
6 lecciones541- 01¿Qué son las excepciones?Quiz
- 02El bloque 'try-catch'RetoQuiz
- 03Capturar excepciones con 'on'RetoQuiz
- 04El bloque 'finally'RetoQuiz
- 05Lanzar una excepciónRetoQuiz
- 06Resumen - División seguraReto
Funciones avanzadas
7 lecciones646- 01Funciones anónimasRetoQuiz
- 02Pasar funciones como argumentosRetoQuiz
- 03Entendiendo los ClosuresRetoQuiz
- 04Introducción a la recursividadQuiz
- 05Función recursiva: Cuenta regresivaRetoQuiz
- 06Función recursiva: FactorialRetoQuiz
- 07Resumen - Procesador de listasReto
Proyecto: Analizador de texto simple
Proyecto7 lecciones18- 01Descripción general y configuración del proyectoRetoQuiz
- 02Contar caracteresProyecto
- 03Dividir el texto en palabrasProyecto
- 04Contar palabrasProyecto
- 05Contar palabras únicasProyecto
- 06Contador de frecuencia de palabrasProyecto
- 07Mostrar el análisisProyecto
Enumeraciones (Enums)
5 lecciones433- 01¿Qué son los Enums?Quiz
- 02Definir un Enum simpleRetoQuiz
- 03Uso de Enums en variablesRetoQuiz
- 04Enums en sentencias 'switch'RetoQuiz
- 05Resumen - SemáforoReto
Desafíos finales
3 lecciones3- 01Desafío: Clasificador de calificacionesReto
- 02Desafío: Contador de vocalesReto
- 03Desafío: FizzBuzzReto
03Sección 3
Programación Orientada a Objetos
Descubre cómo organizar el código con clases, objetos y estructuras reutilizablesEMPEZAR A APRENDERFundamentos de POO
9 lecciones971- 01Archivos externosRetoQuiz
- 02Librerías e importacionesRetoQuiz
- 03Introducción a la POORetoQuiz
- 04Clases vs. ObjetosRetoQuiz
- 05La palabra clave thisRetoQuiz
- 06MétodosRetoQuiz
- 07Variables de instanciaRetoQuiz
- 08Conceptos básicos de constructoresRetoQuiz
- 09Resumen - Calculadora sencillaReto
Constructores en Dart
7 lecciones753- 01Constructor por defectoRetoQuiz
- 02Constructores nombradosRetoQuiz
- 03Listas de inicializaciónRetoQuiz
- 04Constructores constantesRetoQuiz
- 05Constructores de fábricaRetoQuiz
- 06Constructores de redireccionamientoRetoQuiz
- 07Resumen - Constructor de formasReto
Propiedades de clase
6 lecciones644- 01Miembros de instancia vs. estáticosRetoQuiz
- 02Campos Final y ConstRetoQuiz
- 03Variables LateRetoQuiz
- 04Métodos y campos estáticosRetoQuiz
- 05Getters y SettersRetoQuiz
- 06Resumen - Gestor de cuentas bancariasReto
Seguridad de nulos
7 lecciones754- 01Introducción a la seguridad de nulosRetoQuiz
- 02Nulables vs No nulablesRetoQuiz
- 03Los operadores ? y !RetoQuiz
- 04Palabra clave Late y Null SafetyRetoQuiz
- 05Operadores Null-awareRetoQuiz
- 06Null Safety en clasesRetoQuiz
- 07Resumen - Sistema de perfil de usuarioReto
Encapsulamiento
6 lecciones641- 01Miembros públicos vs. privadosRetoQuiz
- 02La convención del prefijo _RetoQuiz
- 03Privacidad a nivel de libreríaRetoQuiz
- 04Profundidad en Getters y SettersRetoQuiz
- 05Ocultamiento de informaciónRetoQuiz
- 06Resumen - Registros de estudiantesReto
Herencia
7 lecciones750- 01Herencia básicaRetoQuiz
- 02La palabra clave superRetoQuiz
- 03Sobrescritura de métodosRetoQuiz
- 04La anotación @overrideRetoQuiz
- 05La palabra clave final en clasesRetoQuiz
- 06Constructores y herenciaRetoQuiz
- 07Resumen - Jerarquía de empleadosReto
Clases abstractas e interfaces
7 lecciones753- 01Clases abstractasRetoQuiz
- 02Métodos abstractosRetoQuiz
- 03Interfaces en DartRetoQuiz
- 04Interfaces implícitasRetoQuiz
- 05Implementar vs. ExtenderRetoQuiz
- 06Interfaces múltiplesRetoQuiz
- 07Repaso - Calculadora de figurasReto
Mixins
7 lecciones752- 01Introducción a los MixinsRetoQuiz
- 02Creación de MixinsRetoQuiz
- 03Uso de múltiples MixinsRetoQuiz
- 04Palabra clave on en MixinsRetoQuiz
- 05Mixin vs HerenciaRetoQuiz
- 06Mixin vs InterfazRetoQuiz
- 07Resumen - Sistema AnimalReto
Polimorfismo
6 lecciones643- 01Fundamentos del polimorfismoRetoQuiz
- 02Polimorfismo mediante interfacesRetoQuiz
- 03Comprobación de tipos en tiempo de ejecuciónRetoQuiz
- 04Los operadores is y asRetoQuiz
- 05Palabra clave covariantRetoQuiz
- 06Resumen - Procesador de pagosReto
Colecciones y Genéricos
7 lecciones754- 01Visión general de List, Set y MapRetoQuiz
- 02Colecciones con seguridad de tiposRetoQuiz
- 03Clases genéricasRetoQuiz
- 04Métodos genéricosRetoQuiz
- 05Restricciones genéricasRetoQuiz
- 06Iterable e IteratorRetoQuiz
- 07Resumen - Almacenamiento genéricoReto
Métodos especiales
6 lecciones643- 01Sobrescritura de toString()RetoQuiz
- 02Sobrescritura de hashCode y ==RetoQuiz
- 03Interfaz ComparableRetoQuiz
- 04Método call()RetoQuiz
- 05Sobrescritura de noSuchMethodRetoQuiz
- 06Resumen - Colección personalizadaReto
POO Asíncrona
6 lecciones645- 01Futures y async/awaitRetoQuiz
- 02Fundamentos de StreamsRetoQuiz
- 03Stream ControllersRetoQuiz
- 04Constructores asíncronosRetoQuiz
- 05Asincronía en métodos de claseRetoQuiz
- 06Repaso - Data FetcherReto
Conceptos avanzados de POO
7 lecciones764- 01Composición vs. HerenciaRetoQuiz
- 02Métodos de extensiónRetoQuiz
- 03Clases invocablesRetoQuiz
- 04Clases selladas (Dart 3)RetoQuiz
- 05Records (Dart 3)RetoQuiz
- 06Patrones y coincidencia (3.0)RetoQuiz
- 07Enums con métodosRetoQuiz
Patrones de diseño Parte 1
5 lecciones543- 01Introducción a los patrones de diseñoRetoQuiz
- 02Patrón SingletonRetoQuiz
- 03Patrón FactoryRetoQuiz
- 04Patrón ObserverRetoQuiz
- 05Patrón StrategyRetoQuiz
Patrones de diseño Parte 2
7 lecciones763- 01Patrón CommandRetoQuiz
- 02Patrón AdapterRetoQuiz
- 03Patrón DecoratorRetoQuiz
- 04Patrón Template MethodRetoQuiz
- 05Patrón StateRetoQuiz
- 06Patrón CompositeRetoQuiz
- 07Patrón RepositoryRetoQuiz
Proyecto: Gestión de biblioteca
Proyecto6 lecciones1- 01Descripción general del proyectoReto
- 02Clases de Libros y UsuariosProyecto
- 03Sistema de préstamosProyecto
- 04Funcionalidad de búsquedaProyecto
- 05Interfaz de administradorProyecto
- 06Pruebas e integraciónProyecto
Desafíos finales
4 lecciones4- 01Plataforma de E-LearningReto
- 02Sistema bancarioReto
- 03Sistema de personajes de juegoReto
- 04Servicio de alquiler de vehículosReto
Por qué aprender Dart con Coddy
- Curso de Dart online y gratis: sin instalación, sin configurar herramientas y sin barreras para empezar. Abre el navegador y practica desde la primera lección.
- Lecciones prácticas de Dart que van más allá de un tutorial: cada concepto viene con un reto para escribir código real y entenderlo haciendo.
- Las pistas de IA te ayudan cuando te bloqueas en un ejercicio de Dart, explicando el siguiente paso sin darte la solución completa.
- Certificado gratis de finalización para compartir en LinkedIn o añadir al CV como prueba de que completaste un curso interactivo de Dart.
Preguntas frecuentes sobre aprender Dart
¿Dart es fácil de aprender?
Sí, puedes empezar con Dart aunque no tengas experiencia previa. Coddy divide los conceptos en ejercicios cortos para que entiendas la sintaxis, practiques variables, condicionales, bucles, funciones, estructuras de datos y organización de proyectos y ganes confianza paso a paso.
¿Cuánto tiempo se tarda en aprender Dart?
Los fundamentos de Dart suelen aprenderse en una o dos semanas de práctica diaria. Para sentirte cómodo creando proyectos reales, reserva de uno a tres meses según tu ritmo y tu experiencia previa.
¿Dónde puedo aprender Dart online gratis?
Coddy ofrece un curso online gratis de Dart con lecciones, retos de código, cuestionarios y proyectos. No necesitas instalar nada: todo funciona en el navegador.
¿Cómo puedo aprender Dart rápido?
La forma más rápida es practicar todos los días. En Coddy alternas explicación breve, ejercicio inmediato y feedback con pistas de IA, así que pasas más tiempo escribiendo Dart que mirando videos largos.
¿Recibo un certificado de Dart al terminar?
Sí. Al completar el curso de Dart en Coddy recibes un certificado gratis de finalización que puedes compartir en LinkedIn o añadir a tu currículum.
¿Qué puedo crear después de aprender Dart?
Después del curso podrás crear scripts útiles, pequeñas apps, automatizaciones, juegos sencillos y proyectos que puedes mostrar en tu portfolio. También tendrás una base sólida para seguir con temas más avanzados.