Parcours
Apprendre Dart
Un cours Dart gratuit, interactif et en ligne. Tu écris du Dart à chaque leçon — syntaxe, classes, async/await, futures et les bases dont tu as besoin pour Flutter — avec des indices IA quand l'async devient bizarre, et un certificat gratuit à la fin.
17,492+ codders inscrits
- Adapté aux débutants
Aide au codage assistée par IA
Leçons interactives et pratiques
Narration audio dans chaque leçon
Quiz pour tester vos connaissances
Certificat gratuit de réussite
Programme
Section 1
Fondamentaux
Commencer la sectionDémarrerDévelopperRéduireConstruisez une base solide avec les concepts essentiels et les compétences de baseIntroduction à Dart
4 leçons224- 01Qu'est-ce que Dart ?Défi
- 02La fonction mainQuiz
- 03Affichage de sortieDéfiQuiz
- 04Commentaires de codeQuiz
Variables et types de données de base
11 leçons1075- 01Qu'est-ce que les variables ?Quiz
- 02ChaînesDéfiQuiz
- 03Entiers (int)DéfiQuiz
- 04Doubles (double)DéfiQuiz
- 05Booléens (bool)DéfiQuiz
- 06Inférence de type avec 'var'DéfiQuiz
- 07Variables finalesDéfiQuiz
- 08Variables constantesDéfiQuiz
- 09Conventions de nommageDéfiQuiz
- 10Sécurité null de baseDéfiQuiz
- 11Récapitulatif - Déclaration des variablesDéfi
Opérateurs Partie 1
6 leçons638- 01Opérateurs arithmétiquesDéfiQuiz
- 02Division entièreDéfiQuiz
- 03Opérateur moduloDéfiQuiz
- 04Incrémentation et décrémentationDéfiQuiz
- 05Raccourcis d'affectationDéfiQuiz
- 06Récapitulatif - Calculs simplesDéfi
Opérateurs Partie 2
6 leçons636- 01Opérateurs de comparaisonDéfiQuiz
- 02ET logiqueDéfiQuiz
- 03OU logiqueDéfiQuiz
- 04NON logiqueDéfiQuiz
- 05Opérateurs de test de typeDéfiQuiz
- 06Récapitulatif - Faire des comparaisonsDéfi
Opérateurs Partie 3
3 leçons320- 01Opérateur null-awareDéfiQuiz
- 02Accès null-awareDéfiQuiz
- 03Opérateur conditionnelDéfiQuiz
Flux de contrôle - Prise de décision
6 leçons636- 01L'instruction 'if'DéfiQuiz
- 02L'instruction 'else'DéfiQuiz
- 03L'instruction 'else if'DéfiQuiz
- 04Récapitulatif - Décisions simplesDéfi
- 05Instructions 'if' imbriquéesDéfiQuiz
- 06L'instruction 'switch'DéfiQuiz
Travailler avec les chaînes
5 leçons538- 01Concaténation de chaînesDéfiQuiz
- 02Interpolation de chaînesDéfiQuiz
- 03Chaînes multi-lignesDéfiQuiz
- 04Propriétés des chaînesDéfiQuiz
- 05Méthodes de base des chaînesDéfiQuiz
Flux de contrôle - Boucles
6 leçons637- 01La boucle 'for'DéfiQuiz
- 02La boucle 'while'DéfiQuiz
- 03La boucle 'do-while'DéfiQuiz
- 04Utiliser 'break' dans les bouclesDéfiQuiz
- 05Utiliser 'continue' dans les bouclesDéfiQuiz
- 06Récapitulatif - Répéter du codeDéfi
Collections - Bases des listes
8 leçons759- 01Qu’est-ce qu’une liste ?Quiz
- 02Créer une listeDéfiQuiz
- 03Accéder par indexDéfiQuiz
- 04Obtenir la longueur d’une listeDéfiQuiz
- 05Ajouter des élémentsDéfiQuiz
- 06Supprimer des élémentsDéfiQuiz
- 07Vérifier si une liste est videDéfiQuiz
- 08Itérer sur une listeDéfiQuiz
Collections - Bases des Maps
8 leçons757- 01Que sont les Maps ?Quiz
- 02Créer une MapDéfiQuiz
- 03Accéder aux valeurs par cléDéfiQuiz
- 04Paires clé-valeurDéfiQuiz
- 05Obtenir la taille d'une MapDéfiQuiz
- 06Obtenir les clésDéfiQuiz
- 07Obtenir les valeursDéfiQuiz
- 08Vérifier si une clé existeDéfiQuiz
Bases des fonctions
8 leçons753- 01Que sont les fonctions ?Quiz
- 02Définir une fonction basiqueDéfiQuiz
- 03Appeler une fonctionDéfiQuiz
- 04Fonctions avec paramètresDéfiQuiz
- 05Fonctions renvoyant des valeursDéfiQuiz
- 06Le mot-clé 'void'DéfiQuiz
- 07Syntaxe fléchéeDéfiQuiz
- 08Récapitulatif - Fonctions simplesDéfi
Fonctions avancées
5 leçons532- 01Paramètres positionnels optionnelsDéfiQuiz
- 02Paramètres nommésDéfiQuiz
- 03Paramètres nommés requisDéfiQuiz
- 04Valeurs par défaut des paramètresDéfiQuiz
- 05Récap - Paramètres de fonctionDéfi
Sécurité null en profondeur
6 leçons639- 01Comprendre nullDéfiQuiz
- 02Types nullablesDéfiQuiz
- 03Types non nullablesDéfiQuiz
- 04Opérateur d'affirmation non nulleDéfiQuiz
- 05Initialisation tardiveDéfiQuiz
- 06Récapitulatif - Gérer null en sécuritéDéfi
Conversion de types
4 leçons430- 01Convertir String en intDéfiQuiz
- 02Convertir String en doubleDéfiQuiz
- 03Convertir les nombres en StringDéfiQuiz
- 04Gérer les erreurs de conversionDéfiQuiz
Projet : Calculatrice simple
Projet5 leçons1- 01Mise en placeDéfi
- 02Déclaration d'un nombreProjet
- 03Création d'une opérationProjet
- 04Exécution du calculProjet
- 05Affichage du résultatProjet
Défis Fondamentaux
3 leçons3- 01Défi : Liste de calculsDéfi
- 02Défi : Somme des nombresDéfi
- 03Défi : Trouver le produitDéfi
Section 2
Logique & Flux
Commencer la sectionDémarrerDévelopperRéduireMaîtrisez la programmation avancée en Dart avec un focus sur les structures de données et le contrôle de flux. Apprenez à travailler avec des tableaux complexes, des collections, la gestion des erreurs et la gestion du temps.Manipulation avancée des listes
9 leçons959- 01Propriétés de liste : first & lastDéfiQuiz
- 02État de la liste : isEmpty & isNotEmptyDéfiQuiz
- 03Inverser une listeDéfiQuiz
- 04Ajouter à une liste : insertDéfiQuiz
- 05Suppression dans une liste : removeWhereDéfiQuiz
- 06Rechercher dans une liste : indexOfDéfiQuiz
- 07Trier une listeDéfiQuiz
- 08Mélanger une listeDéfiQuiz
- 09Récapitulatif - Organisateur de listeDéfi
Opérations fonctionnelles sur les listes
7 leçons746- 01Transformer avec 'map'DéfiQuiz
- 02Filtrer avec 'where'DéfiQuiz
- 03Utiliser '.toList()'DéfiQuiz
- 04Vérifier des conditions avec 'any'DéfiQuiz
- 05Conditions avec 'every'DéfiQuiz
- 06Trouver avec 'firstWhere'DéfiQuiz
- 07Récapitulatif - Filtrage de donnéesDéfi
Les Ensembles
9 leçons864- 01Qu'est-ce qu'un ensemble ?Quiz
- 02Créer un ensembleDéfiQuiz
- 03Ajouter et supprimer des éléments d'un ensembleDéfiQuiz
- 04Vérifier la présence d'éléments dans un ensembleDéfiQuiz
- 05Convertir une liste en ensembleDéfiQuiz
- 06Union d'ensemblesDéfiQuiz
- 07Intersection d'ensemblesDéfiQuiz
- 08Différence d'ensemblesDéfiQuiz
- 09Récapitulatif - Liste d'invités uniquesDéfi
Manipulation avancée des Maps
7 leçons745- 01Itérer sur une MapDéfiQuiz
- 02Vérifier les clés et les valeursDéfiQuiz
- 03Propriétés de Map : keys & valuesDéfiQuiz
- 04Ajout conditionnel : putIfAbsentDéfiQuiz
- 05Supprimer des entrées d'une MapDéfiQuiz
- 06Maps imbriquéesDéfiQuiz
- 07Récapitulatif - Mise à jour de l'inventaireDéfi
Projet : Calcul du panier
Projet5 leçons1- 01Configuration du projetDéfi
- 02Ajout d'articles au panierProjet
- 03Calcul du coût totalProjet
- 04Application d'une remiseProjet
- 05Affichage du reçu finalProjet
Gestion de base des erreurs
6 leçons541- 01Que sont les exceptions ?Quiz
- 02Le bloc 'try-catch'DéfiQuiz
- 03Intercepter des exceptions avec 'on'DéfiQuiz
- 04Le bloc 'finally'DéfiQuiz
- 05Lever une exceptionDéfiQuiz
- 06Récapitulatif - Division sécuriséeDéfi
Fonctions avancées
7 leçons646- 01Fonctions anonymesDéfiQuiz
- 02Passage de fonctions en argumentsDéfiQuiz
- 03Comprendre les closuresDéfiQuiz
- 04Introduction à la récursivitéQuiz
- 05Fonction récursive : Compte à reboursDéfiQuiz
- 06Fonction récursive : FactorielleDéfiQuiz
- 07Récapitulatif - List ProcessorDéfi
Projet : Analyseur de texte simple
Projet7 leçons18- 01Présentation et configuration du projetDéfiQuiz
- 02Comptage des caractèresProjet
- 03Découpage du texte en motsProjet
- 04Comptage des motsProjet
- 05Comptage des mots uniquesProjet
- 06Compteur de fréquence des motsProjet
- 07Affichage de l'analyseProjet
Énumérations (Enums)
5 leçons433- 01Qu'est-ce que les Enums ?Quiz
- 02Définir un Enum simpleDéfiQuiz
- 03Utiliser des Enums dans des variablesDéfiQuiz
- 04Les Enums dans les instructions 'switch'DéfiQuiz
- 05Récapitulatif - Feu de signalisationDéfi
Défis finaux
3 leçons3- 01Défi : Trieur de notesDéfi
- 02Défi : Compteur de voyellesDéfi
- 03Défi : FizzBuzzDéfi
Section 3
Programmation Orientée Objet
Commencer la sectionDémarrerDévelopperRéduireDécouvrez comment organiser le code avec des classes, des objets et des structures réutilisablesLes bases de la POO
9 leçons971- 01Fichiers externesDéfiQuiz
- 02Bibliothèques et importsDéfiQuiz
- 03Introduction à la POODéfiQuiz
- 04Classes vs ObjetsDéfiQuiz
- 05Le mot-clé thisDéfiQuiz
- 06MéthodesDéfiQuiz
- 07Variables d'instanceDéfiQuiz
- 08Bases des constructeursDéfiQuiz
- 09Récapitulatif - Calculatrice simpleDéfi
Les constructeurs en Dart
7 leçons753- 01Constructeur par défautDéfiQuiz
- 02Constructeurs nommésDéfiQuiz
- 03Listes d'initialisationDéfiQuiz
- 04Constructeurs constantsDéfiQuiz
- 05Constructeurs factoryDéfiQuiz
- 06Constructeurs de redirectionDéfiQuiz
- 07Récapitulatif - Shape BuilderDéfi
Propriétés de classe
6 leçons644- 01Membres d'instance vs statiquesDéfiQuiz
- 02Champs Final & ConstDéfiQuiz
- 03Variables LateDéfiQuiz
- 04Méthodes et champs statiquesDéfiQuiz
- 05Getters et SettersDéfiQuiz
- 06Récapitulatif - Gestionnaire de compte bancaireDéfi
Null Safety
7 leçons754- 01Introduction à la Null SafetyDéfiQuiz
- 02Nullable vs Non-NullableDéfiQuiz
- 03Les opérateurs ? et !DéfiQuiz
- 04Le mot-clé late et la Null SafetyDéfiQuiz
- 05Les opérateurs Null-AwareDéfiQuiz
- 06La Null Safety dans les classesDéfiQuiz
- 07Récapitulatif - Système de profil utilisateurDéfi
Encapsulation
6 leçons641- 01Membres publics vs privésDéfiQuiz
- 02La convention du préfixe _DéfiQuiz
- 03Visibilité au niveau de la bibliothèqueDéfiQuiz
- 04Approfondissement des Getters & SettersDéfiQuiz
- 05Masquage d'informationsDéfiQuiz
- 06Récapitulatif - Dossiers d'étudiantsDéfi
Héritage
7 leçons750- 01Bases de l'héritageDéfiQuiz
- 02Le mot-clé superDéfiQuiz
- 03Redéfinition de méthodeDéfiQuiz
- 04L'annotation @overrideDéfiQuiz
- 05Le mot-clé final pour les classesDéfiQuiz
- 06Constructeurs et héritageDéfiQuiz
- 07Récapitulatif - Hiérarchie des employésDéfi
Classes abstraites et Interfaces
7 leçons753- 01Classes abstraitesDéfiQuiz
- 02Méthodes abstraitesDéfiQuiz
- 03Interfaces en DartDéfiQuiz
- 04Interfaces implicitesDéfiQuiz
- 05Implémentation vs ExtensionDéfiQuiz
- 06Interfaces multiplesDéfiQuiz
- 07Récapitulatif - Calculateur de formesDéfi
Mixins
7 leçons752- 01Introduction aux MixinsDéfiQuiz
- 02Création de MixinsDéfiQuiz
- 03Utilisation de plusieurs MixinsDéfiQuiz
- 04Le mot-clé on dans les MixinsDéfiQuiz
- 05Mixin vs HéritageDéfiQuiz
- 06Mixin vs InterfaceDéfiQuiz
- 07Récapitulatif - Système AnimalDéfi
Polymorphisme
6 leçons643- 01Bases du polymorphismeDéfiQuiz
- 02Polymorphisme via les interfacesDéfiQuiz
- 03Vérification de type à l'exécutionDéfiQuiz
- 04Les opérateurs is & asDéfiQuiz
- 05Mot-clé covariantDéfiQuiz
- 06Récapitulatif - Processeur de paiementDéfi
Collections et Génériques
7 leçons754- 01Aperçu des List, Set et MapDéfiQuiz
- 02Collections Type-SafeDéfiQuiz
- 03Classes génériquesDéfiQuiz
- 04Méthodes génériquesDéfiQuiz
- 05Contraintes de généricitéDéfiQuiz
- 06Iterable & IteratorDéfiQuiz
- 07Récapitulatif - Stockage génériqueDéfi
Méthodes spéciales
6 leçons643- 01Redéfinition de toString()DéfiQuiz
- 02Redéfinition de hashCode & ==DéfiQuiz
- 03Interface ComparableDéfiQuiz
- 04Méthode call()DéfiQuiz
- 05Redéfinition de noSuchMethodDéfiQuiz
- 06Récapitulatif - Collection personnaliséeDéfi
POO Asynchrone
6 leçons645- 01Futures & async/awaitDéfiQuiz
- 02Bases des StreamsDéfiQuiz
- 03Stream ControllersDéfiQuiz
- 04Constructeurs asynchronesDéfiQuiz
- 05L'asynchrone dans les méthodes de classeDéfiQuiz
- 06Récapitulatif - Data FetcherDéfi
Concepts avancés de la POO
7 leçons764- 01Composition vs HéritageDéfiQuiz
- 02Méthodes d'extensionDéfiQuiz
- 03Classes appelablesDéfiQuiz
- 04Classes scellées (Dart 3)DéfiQuiz
- 05Records (Dart 3)DéfiQuiz
- 06Patterns et Matching (3.0)DéfiQuiz
- 07Enums avec méthodesDéfiQuiz
Patrons de conception Partie 1
5 leçons543- 01Introduction aux patrons de conceptionDéfiQuiz
- 02Patron SingletonDéfiQuiz
- 03Patron FabriqueDéfiQuiz
- 04Patron ObservateurDéfiQuiz
- 05Patron StratégieDéfiQuiz
Patrons de conception Partie 2
7 leçons763- 01Patron CommandeDéfiQuiz
- 02Patron AdaptateurDéfiQuiz
- 03Patron DécorateurDéfiQuiz
- 04Patron Méthode ModèleDéfiQuiz
- 05Patron ÉtatDéfiQuiz
- 06Patron CompositeDéfiQuiz
- 07Patron RepositoryDéfiQuiz
Projet : Gestion de bibliothèque
Projet6 leçons1- 01Présentation du projetDéfi
- 02Classes Livre et UtilisateurProjet
- 03Système d'empruntProjet
- 04Fonctionnalité de rechercheProjet
- 05Interface d'administrationProjet
- 06Tests et intégrationProjet
Défis finaux
4 leçons4- 01Plateforme d'E-LearningDéfi
- 02Système bancaireDéfi
- 03Système de personnages de jeuDéfi
- 04Service de location de véhiculesDéfi
Pourquoi apprendre Dart avec Coddy
- Écris et exécute du vrai code Dart dans ton navigateur. Pas de Dart SDK à installer, pas de toolchain Flutter à configurer. Chaque leçon compile ton programme Dart côté serveur et affiche le résultat instantanément.
- Le Dart tel que les développeurs Flutter l'utilisent vraiment : variables et types, control flow, fonctions, classes et héritage, generics, null-safety, futures, async/await, streams. Les bases de Dart dont tout développeur Flutter a besoin.
- Les indices IA t'aident à lire et corriger les erreurs Dart et les bugs async sans te spoiler la réponse, pour que des concepts comme la null-safety et les futures finissent par faire tilt au lieu de t'embrouiller.
- Certificat Dart gratuit à la fin du cours. Un signal crédible pour les postes en Flutter et en développement mobile, où Dart est le langage principal.
Questions fréquentes sur l’apprentissage de Dart
À quoi sert le langage Dart ?
Dart sert surtout à créer des apps Flutter — le framework UI cross-platform de Google qui vise iOS, Android, le web, Windows, macOS et Linux à partir d'une seule base de code. En dehors de Flutter, Dart sert aussi pour des outils en ligne de commande et du code côté serveur, mais aujourd'hui, si on apprend Dart, c'est avant tout pour Flutter.
Dart est-il difficile à apprendre ?
Dart est l'un des langages à typage statique les plus faciles à prendre en main. La syntaxe est familière à quiconque a déjà vu Java, JavaScript ou C#, et la null-safety est solide pour éviter les bugs courants. La plupart des débutants arrivent à faire tourner leur premier programme Dart dès la première heure et commencent à écrire des classes en moins d'une semaine.
Faut-il apprendre Dart avant Flutter ?
Oui — au moins les bases. Tu avanceras beaucoup plus vite dans Flutter une fois que la syntaxe Dart, les classes, async/await et la null-safety te seront familiers. Le cours Dart est pensé comme une rampe de lancement vers Flutter, tu couvres donc les parties de Dart qu'on retrouve dans du vrai code Flutter.
Combien de temps faut-il pour apprendre Dart ?
Les bases de Dart — variables, structures de contrôle, fonctions, classes — te prennent une à deux semaines de pratique quotidienne. Te sentir à l'aise avec async/await, les futures et la null-safety demande en général deux à quatre semaines de plus. Ensuite, tu peux passer à Flutter tout en continuant à découvrir les fonctionnalités avancées de Dart au fur et à mesure de tes besoins.
Est-ce que je peux apprendre Dart en ligne gratuitement ?
Oui. Le cours interactif de Dart est gratuit — leçons, exercices de code, quiz et un certificat. Dart compile côté serveur, donc tu n'as pas besoin d'installer le Dart SDK ni de configurer Flutter en local pour commencer à écrire du vrai code Dart.
Est-ce que je reçois un certificat à la fin du cours Dart ?
Oui. En terminant le cours Dart, tu obtiens un certificat de fin de formation gratuit. Une preuve vérifiable à ajouter à ton CV ou à partager sur LinkedIn, particulièrement utile comme tremplin vers le développement Flutter.