Applez Nous: +41 22 518 70 00
Le langage Dart, optimisé pour les interfaces utilisateur, intègre une sécurité stricte contre les valeurs nulles. Par défaut, une variable ne peut jamais contenir null, éliminant à la racine le fameux milliard de dollars d’erreurs (NullPointerException). Pour autoriser explicitement une valeur nulle, on utilise le modificateur ? :
// Types non nullables par défaut
String nomFormation = "Développement Mobile Flutter";
// nomFormation = null; // Erreur de compilation immédiate !
// Type nullable explicite
String? identifiantEtudiant;
identifiantEtudiant = "GE-2026-89";
// Opérateur de propagation sécurisée (?.) et coalescence nulle (??)
int longueur = identifiantEtudiant?.length ?? 0;
print("Longueur identifiant : $longueur");
Dart propose une syntaxe de POO extrêmement élégante, incluant des paramètres nommés obligatoires (required) et des constructeurs concis :
class SessionFormation {
final String titre;
final int volumeHeures;
final String campus;
final bool estCertifiante;
// Constructeur moderne avec initialisation directe
const SessionFormation({
required this.titre,
required this.volumeHeures,
this.campus = "Genève",
this.estCertifiante = true,
});
// Constructeur nommé d'usine (factory constructor)
factory SessionFormation.fromJson(Map<String, dynamic> json) {
return SessionFormation(
titre: json['titre'] as String,
volumeHeures: json['volume_heures'] as int,
campus: json['campus'] as String? ?? "Genève",
);
}
}
En Dart, les fonctions sont des objets de premier ordre pouvant être passés en arguments (callbacks). Le langage fournit des méthodes fonctionnelles riches sur les collections : map(), where(), reduce() et l’opérateur de dispersion (Spread operator ...).
Synthèse pédagogique : La rigueur du typage Dart garantit que les erreurs de modélisation sont interceptées dès la compilation, bien avant qu’un utilisateur ne lance votre application sur son téléphone.