Malgré sa relative jeunesse, le langage de pro­gram­ma­tion DART a déjà su s’imposer, notamment dans la pro­gram­ma­tion d’ap­pli­ca­tions mobiles. L’en­tre­prise Google a lancé Flutter, son kit de dé­ve­lop­pe­ment de logiciel (SDK) qui utilise DART et favorise l’uti­li­sa­tion et la diffusion de ce langage de pro­gram­ma­tion. L’un de ses points forts vient du fait qu’il peut être utilisé pour pro­gram­mer des ap­pli­ca­tions pour tous les systèmes d’ex­ploi­ta­tion mobiles, c’est-à-dire Apple iOS, Google Android ou Microsoft Windows Phone.

Apprenez à pro­gram­mer avec DART : notre tutoriel DART présente les premières étapes pour se fa­mi­lia­ri­ser avec le langage de pro­gram­ma­tion de Google. Ce n’est pas très difficile. Pour en savoir plus sur ce langage de pro­gram­ma­tion, consultez notre article sur le langage DART. Vous trouverez de plus amples in­for­ma­tions dans notre article sur le kit de dé­ve­lop­pe­ment de logiciels Flutter.

L’origine de DART

À l’origine, DART a été créé pour résoudre les problèmes de Ja­vaS­cript qui, du point de vue des dé­ve­lop­peurs, ne pouvaient plus être résolus dans ce langage de pro­gram­ma­tion déjà établi.

Cette cons­ta­ta­tion a été le point de départ d’une longue recherche pour trouver des moyens visant à sim­pli­fier ou résumer certaines logiques internes sans com­pro­mettre toutes les pos­si­bi­li­tés offertes par ce langage. À titre d’exemple, un code en Ja­vaS­cript :

getElementsById()
getElementsByTagName()
getElementsByName()
getElementsByClassName()
querySelector()
querySelectorAll()
document.links
document.images
document.forms
document.scripts
formElement.elements
selectElement.options

Le même code avec DART :

elem.query(‘#foo’);
elem.queryAll(‘.foo’);

Débuter avec DART

Un langage de pro­gram­ma­tion est un univers qui se compose notamment d’un « vo­ca­bu­laire » per­met­tant de struc­tu­rer et de concevoir des processus (al­go­rithmes). Pour cela, le langage utilise un nombre fixe de termes, les variables, qui ont une fonction précise. Dans DART, on peut nommer les variables « var », « int », « if », « else » ou encore « while ». Pour en savoir plus sur l’ar­chi­tec­ture des langages de pro­gram­ma­tion, consultez notre article dédié. La com­bi­nai­son de variables, d’opé­ra­teurs, de con­di­tions, de fonctions et de bien d’autres éléments conduit au dé­rou­le­ment du programme qui produit un résultat.

DART en pratique

Pour apprendre la pro­gram­ma­tion avec DART, notre tutoriel vous propose tout d’abord des exemples simples et com­pré­hen­sibles que vous pourrez ensuite dé­ve­lop­per et avec lesquels vous pourrez ex­pé­ri­men­ter. Chaque routine commence par l’appel de la fonction prin­ci­pale. Voici un exemple classique dans le monde de la pro­gram­ma­tion :

void main () {
    print("Hello World!"); 
}

La fonction « main » est précédée par le type de retour « void », qui indique que la fonction ne renvoie rien. La pa­ren­thèse « () » indique qu’il s’agit d’une fonction et le code DART est indiqué dans les crochets « {....} ». Ici, il s’agit d’une commande qui a pour objectif d’afficher quelque chose à l’écran. Tout ce qui se trouve après les barres obliques « // » est considéré comme un com­men­taire et est invisible. Les com­men­taires peuvent également être indiqués sous la forme « /* ceci est un com­men­taire mul­ti­ligne ...*/ » comme en PHP. Cela vous permet de commenter votre propre code de manière struc­tu­rée pour votre usage ou à des­ti­na­tion d’autres pro­gram­meurs, ce qui facilite gran­de­ment le travail d’équipe.

Note
Comme pour Java, C et PHP, toutes les commandes DART doivent se conclure par un point virgule.

Testez par vous-même l’exemple ci-dessous. Pour cela, utilisez la pla­te­forme open source gratuite DartPad. Ce pad a notamment l’avantage de numéroter les lignes du programme et d’afficher des messages si une erreur se produit. En outre, il met à dis­po­si­tion certains exemples de pro­gram­ma­tion dans les menus dé­rou­lants.

Dans les exemples qui suivent, « void main() {…} » n’est plus indiqué dans le code.

Définir et utiliser les variables

Les variables sont utilisées pour définir des tailles fixes pour le programme. Com­men­çons avec les chiffres.

var mySize = 174;

Cela permet de définir une nouvelle variable pour « MySize ». Ici, on lui attribue la valeur « 174 ». La valeur de cette variable reste fixe tout au long du dé­rou­le­ment du programme jusqu’à ce qu’elle soit ac­ti­ve­ment modifiée par des opé­ra­teurs ou des fonctions. La commande « print » in­ter­vient pour afficher la valeur des variables.

var mySize = 174;
print(mySize);
int yourSize = 174;
print(yourSize);
double thisSize = 1.74;
print(thisSize);
dynamic oneSize = 'Onehundredseventyfor' + ': ' + '174';
print(oneSize);

Grâce à la commande « print » dans DartPad, les lignes 3, 6 ,9 et 12 affichent les résultats suivants :

Les variables DART ont des types précis. Il peut s’agir de nombres entiers (« int ») ou de nombres à virgule flottante (« double »). Le type de variable « dynamic » peut prendre dif­fé­rentes valeurs et ex­pres­sions pendant le dé­rou­le­ment du programme. En revanche, les lignes, onglets ou pa­ra­graphes vides ne sont pas pris en compte lors du trai­te­ment de la routine. C’est pour cette raison que les valeurs sont affichées les unes au-dessous des autres, à droite de la console.

L’at­tri­bu­tion d’une valeur in­cor­recte à un type de variable par­ti­cu­lier génère un message d’erreur décrivant l’erreur dans DartPad :

int mySize = 1.74; // integer is expected, but double comes
print(mySize);
Note
Les iden­ti­fi­ca­teurs (Iden­ti­fier) des variables utilisées ne doivent pas contenir de mots-clés. Les chiffres au début ainsi que les espaces et les ca­rac­tères spéciaux ne sont pas autorisés, les seules ex­cep­tions sont le tiret bas « _ » et le signe de dollar « $ ». Les iden­ti­fi­ca­teurs sont sensibles à la casse et doivent être uniques.

Chaînes de ca­rac­tères

Les chaînes de ca­rac­tères cor­res­pon­dent au type de données « String » (Attention : ne pas oublier le S majuscule au début), qui permet de traiter n’importe quel caractère en DART. Cela permet également d’aborder la pro­gram­ma­tion du formatage de textes mul­ti­lignes avec DART.

String text1 = 'this is a single line string';
String text2 = '''this is a multiline
	line string with a break''';
print(text1);
print(text2);

Pour afficher le texte sous forme de chaîne, encadrez le contenu de guil­le­mets simples ou normaux : ' ou ". Si le texte est encadré par une série de trois guil­le­mets simples ou doubles (''' ou """) il sera affiché en Dart avec les sauts de ligne d’origine. Vous disposez ainsi d’une technique pour formater l’affichage.

Conseil

Sous Windows, les guil­le­mets ty­po­gra­phiques (anglais) peuvent fa­ci­le­ment être insérés dans le texte grâce aux rac­cour­cis clavier [Alt] + 0147 (ouvrant) et [Alt] + 0148 (fermant). Ils sont également affichés sous cette forme dans une chaîne de ca­rac­tères DART. Sous macOS, les rac­cour­cis clavier pour ces guil­le­mets sont : [Alt] +[Maj] + [W] et [Alt] + [2].

Jouer avec les nombres en DART

De la dé­fi­ni­tion des variables aux calculs avec des variables, il n’y a qu’un pas. Il est possible d’ad­di­tion­ner des nombres ou même des ex­pres­sions. Pour effectuer les calculs, DART utilise des opé­ra­teurs arith­mé­tiques. À titre d’exemple, prenons le cas d’un article dans une boutique en ligne dont le client voudrait acheter trois exem­plaires. Dans la fonction panier, le prix in­di­vi­duel doit donc être multiplié par « 3 » et le prix total doit s’afficher. Dans le code ci-dessous, on peut voir l’uti­li­sa­tion de dif­fé­rentes méthodes de re­grou­pe­ment des données, et les com­men­taires dans les lignes cor­res­pon­dantes :

String product = 'calendar';
String curr = 'EUR';
String isFor = 'for'; // 3 strings for later print use
double singlePrice = 7.96; // floating comma for single price
int amount = 3; // number of ordered calendars
var totalPrice = (amount*singlePrice); // calculation oft he total price with multiplier *
var invTotal = '$totalPrice $curr'; /* Merging of two variables in a new one by adding a $ sign before the old variables.*/
var result = '$amount $product\s'; //also plus adding a letter “s” for plural
print (invTotal); //creating the screen output
print (isFor);
print (result);

Avec les chaînes de ca­rac­tères, les nombres à virgule flottante, les nombres entiers et les fusions d’éléments, de nouvelles variables sont in­tro­duites dans la pro­gram­ma­tion. Lors de la fusion de deux variables exis­tantes en une nouvelle variable à afficher à l’écran, il convient de noter que les variables pré­dé­fi­nies sont dans ce cas précédées par un signe dollar « $ » (ligne 8 et 9 dans la capture d’écran DartPad ci-dessus).

Définir des con­di­tions

Les con­di­tions jouent un rôle essentiel lors de la pro­gram­ma­tion. Découvrez comment pro­gram­mer une condition avec DART. Une condition mène toujours à une décision : si (if) le cas A se produit, le signe X s’affiche à l’écran ; si le cas B se produit (elseif), le signe Y s’affiche ; quand aucun des deux ne se produit (else), le signe Z s’affiche. Le code suivant est généré grâce aux commandes DART entre pa­ren­thèses :

var tOol = 'Glove';
if (tOol == 'Pliers' || tOol == 'Ruler') 
    { print('That is a tool.');
    } else if (tOol == 'brush') 
    { print('That is a tool.');    
    } else { print('That is not a tool.');
    }
}

Dans DartPad :

En­ri­chis­sez vos con­nais­sances acquises au cours du tutoriel DART et remplacez le mot « gant » dans le DartPad par « pince », « règle » ou « pinceau » et observez les chan­ge­ments dans l’affichage programmé sur la console. Cet exemple peut être modifié à volonté et appliqué à dif­fé­rents cas. L’opérateur « || » apparaît pour la première fois dans cet exemple. Cette double barre verticale remplace le con­nec­teur logique « ou » qui n’est pas utilisé sous la forme « OR » dans DART.

Aug­men­ta­tions et di­mi­nu­tions

Pour pro­gram­mer la section suivante, nous devons nous fa­mi­lia­ri­ser avec ce que l’on appelle les in­cré­ments et dé­cré­ments dans DART. Il s’agit de l’aug­men­ta­tion ou de la di­mi­nu­tion pro­gres­sive d’une valeur de sortie. Dans cet exemple, le chiffre 50 est modifié grâce aux opé­ra­teurs « ++ » et « -- ».

var upAndDown = 50;
print (upAndDown);
print('----');
++upAndDown;
print (upAndDown);
print('----');
upAndDown++;
print (upAndDown);
print('----');
--upAndDown;
print (upAndDown);
print('----');
upAndDown--;
print (upAndDown);

Vous pouvez également voir qu’il est possible d’afficher une chaîne de ca­rac­tères simple sans indiquer de dé­fi­ni­tion préalable ; pour cela, il suffit de l’in­tro­duire dans le code entre pa­ren­thèses et entre guil­le­mets précédé de la fonction « Print ». Dans le cas présent, la chaîne de ca­rac­tères sert à struc­tu­rer l’affichage du résultat. Avec ces con­nais­sances, vous êtes prêt à pro­gram­mer des boucles.

Pro­gram­mer des boucles dans DART

Les boucles sont également des routines de programme im­por­tantes qui sont réu­ti­li­sées con­ti­nuel­le­ment, par exemple, pour effectuer des com­pa­rai­sons avec les tailles exis­tantes. C’est à cela que sert la « for­mu­la­tion » suivante : nous avons la valeur A, modifions cette valeur jusqu’à ce que la taille (l’état) B soit atteinte. Code en DART :

String myLabel = ' pieces';
var piece = 3;
while (piece < 12) {
var allThisStuff = '$piece $myLabel';
print(allThisStuff);
piece++;
    }

Que fait le DartPad avec ce code ?

Dans cet exemple, il est également possible d’utiliser à nouveau les con­di­tions si, par exemple, les mots diffèrent au singulier et au pluriel :

int amount = 1;
var itemSing = 'blouse';
var itemPlural = 'blouses';
if (amount == 1) 
    { print(itemSing);
    } else { print(itemPlural);
    }

Pour apprendre à pro­gram­mer avec DART, copiez les codes des exemples dans DartPad et modifiez la variable entière « quantité » afin que l’article « chemisier » soit affiché au singulier ou au pluriel.

Aperçu des opé­ra­teurs DART

Vous venez de vous fa­mi­lia­ri­ser avec quelques opé­ra­teurs pour la pro­gram­ma­tion avec DART. Dans le tableau ci-dessous, retrouvez les opé­ra­teurs im­por­tants à votre dis­po­si­tion pour la pro­gram­ma­tion avec DART.

Dans le tableau, la valeur « exemple » est définie sur 35.

var exemple = 35;
Type d’opération Des­crip­tion Symbole Exemple Résultat        
Calculer Addition + var exemple + 2; 37        
  Sous­trac­tion - var exemple - 2; 33        
  Mul­ti­pli­ca­tion * var exemple * 3; 105        
  Division / var exemple / 7; 5        
  Division de nombres entiers ~/ var exemple ~/ 7; 11        
  Aug­men­ta­tion de += var exemple += 6; 41        
  Réduction de -= var exemple -= 7; 28        
  Mul­ti­pli­ca­tion par *= var exemple *= 2; 70        
  Division par /= var exemple /= 7; 5        
                 
Comparer Identique == var exemple == 35; Vrai        
  Différent != var exemple != 44; Vrai        
  Plus petit que < var exemple < 44; Vrai        
  Plus petit ou égal à <= var exemple <= 33; Faux        
  Plus grand que > 44 > var exemple; Vrai        
  Plus grand ou égal à >= var exemple>=23; Faux        
                 
Modifier Aug­men­ta­tion ++ ++var exemple; 36        
  Aug­men­ta­tion ++ var exemple++; 36        
  Di­mi­nu­tion -- --var exemple; 34        
  Di­mi­nu­tion -- var exemple--; 34        
  Valeur ré­si­duelle % %var exemple%3; 2        
                 
Logique ET && exemple1 && exemple2 … et        
  OU       exemple1   exemple2 … ou
  Négation ! exemple1 ! exemple2 ... n’est pas        
                 
Con­di­tions Si-alors ? … : var y = exemple < 34 ? 15 : 10; 10        
  Si-alors ? … : var y = exemple < 36 ? 15 : 10; 15        
  Vé­ri­fi­ca­tion si nul ?? var y = exemple ?? 9; 35        
  Vé­ri­fi­ca­tion si nul ?? var z = 0 ?? exemple; 35        

Grâce à ces con­nais­sances de base, vous allez pouvoir ra­pi­de­ment pro­gres­ser avec DART et vous n’êtes plus très loin de pouvoir pro­gram­mer votre propre ap­pli­ca­tion.

Aller au menu principal