Module: Atelier Mobile Cross-plateforme Réalisé par:
Mohamed Ben Jazia
INTRODUCTION
AU LANGAGE
DART
Version 03 – Septembre 2023 [Link]@[Link]
OBJECTIF
ed
am
DÉCOUVRIR LE LANGAGE “DART”
oh
M
PREREQUIS
a
zi
Ja
en
POO , C, JAVA, PHP , JAVASCRIPT
B
Réalisé par: Mohamed Ben Jazia Version 03 Septembre 2023 2
Plan
ed
am
oh
I. Présentation du langage
M
II. Notion élémentaire DART
a
zi
Ja
en
B
I. PRÉSENTATION DU LANGAGE DART
ed
am
CARTE D’IDENTITÉ
oh
DATE DE SORTIE :10 octobre 2011
M
AUTEUR :Lars Bak & Kasper Lund
a
DÉVELOPPEUR :
zi
DERNIÈRE VERSION : 28 AOÛT 2024, 3.5.2
Ja
en
B
4 Site Officiel & documentation : [Link]
I. PRÉSENTATION DU LANGAGE DART
[Link]éristiques:
ed
• Open source.
am
• Simple, facile à prendre en main : ( C, Java, C#,
Javascript,)
oh
• Dart est un langage orienté Web
• Hot reload !!
M
• Langage orienté Objet
• Il peut s'exécuter :
a
zi
●
Dans une Machine Virtuelle (VM): on parle de code natif
Ja
●
Côté client (sur le navigateur): compilé en JS
●
Coté serveur.
en
• Utiliser pour le développement mobile natif:
●
Android, IOS, Windows Phone
B
• Multi plateforme: Windows Desktop, Linux desktop & Web
• Utilisé pour le prototypage des applications mobiles
5
• Extension des fichiers .dart
I. PRÉSENTATION DU LANGAGE DART
2. Téléchargement & Installation:
ed
• Téléchargeable depuis : [Link]
am
oh
M
a
zi
Ja
en
B
6
II. LE LANGAGE DART
1. La structure d’un Programme dart :
ed
am
oh
M
a
zi
IDE :
Ja
en
B
7
II. LE LANGAGE DART
2. Le Style de nommage des identificateurs:
ed
Dart supporte 3 modes de nommage: Pour tester vos codes source
1. UpperCamelCase: Classes, enum types, typedefs, Dart, vous pouvez utiliser le
am
2. lowerCamelCase: constant variables mode en ligne :
3. lowercase with undrscore :name libraries, packages, directories, [Link]
oh
import, and source files
M
a
zi
Ja
en
B
8
II. LE LANGAGE DART
3. Les commentaires • La documentation
ed
• // une seule ligne • /// documentation d’une fonction classe
• /*
am
un bloc de code
• */
oh
4. Les variables
M
• Dart est sensible à la casse : Age != age
a
• La déclaration d’une variable : var , dynamic, object
zi
Ja
• Chaque variable est considérée comme un objet Instancie de la classe
selon son type
en
B
• Le type de la variable sera détecté selon la valeur affectée
9
II. LE LANGAGE DART
4.1 Exemples de déclaration:
ed
am
oh
M
a
zi
Ja
en
B
10
II. LE LANGAGE DART
5. Sound NullSafety :
ed
●
Dart protége l’accès à une variable dont le contenu est Null.
am
●
Actif par défaut depuis la version dart 2.2
●
=> Toutes variables déclarées, doit être non null par défaut
oh
NullSafety introduit 3 contraintes :
M
a. Lors de la déclaration variable, paramètres etc :
a
Type nom_var ; le type interdit l’autorisation de la valeur null
zi
Type? nom_var ; Le type peut autorisé une valeur null
Ja
b. Toutes variables déclarée non Null doit contenir une valeur avant son utilisation.
en
c. On ne peut pas accéder aux propriétés ni appeler des méthodes
B
sur une expression avec un type nullable
11
II. LE LANGAGE DART
5. Sound NullSafety :
ed
am
oh
M
a
zi
Ja
en
B
12
II. LE LANGAGE DART
6. Les opérateurs :
ed
var exemple = 35;
am
oh
M
a
zi
Ja
en
B
13
II. LE LANGAGE DART
7. Le type numérique
ed
Déclarations des variables numériques :
am
• var nombre1 = 2;
• num nombre2 = 2; // => int
• num nombre3= -2.125 => double
oh
• int nombre4 = 2; // => int
• double nombre5=26.09 ; => // double
M
a
zi
Ja
Différence entre :
en
• Const: une variable dans la valeur est constante, et connu pendant la compilation
• Final: une variable dans le contenu est déterminé lors de l’exécution (valeur assignée une seule fois )
B
14
II. LE LANGAGE DART
[Link] chaînes de caractéres
ed
• Une valeur de type chaîne de caractères peut
être entourée par un simple ou double cote
am
Var message = ‘Bonjour ’;
String message=’’Bonjour’’ ;
oh
• Concaténation de deux chaînes:
M
• Var prenom=‘Ali’
• Var c = ‘$message $prenom’
a
zi
=> Lorsque on souhaite récupérer ou afficher le
Ja
contenu d’une variable, on la précède par le
caractère $
en
.toString()
• Conversion int/double to string:
B
• Conversion string to int: [Link](‘string’)
• Conversion string to double: [Link](‘string’)
15
II. LE LANGAGE DART
• Soit le code suivant :
ed
am
oh
M
a
• Soit le code suivant :
zi
Ja
en
B
16
II. LE LANGAGE DART
9. Les listes:
ed
• Les listes et les tableaux ont un type
équivalent : List.
am
oh
M
a
zi
Ja
Il est possible de la déclarer comme
suit :
en
•
List<int> notes ;
•
List<String> noms ;
B
17
II. LE LANGAGE DART
• 10. Les MAP :
ed
• Les tables de hachage sont représentées par
le type Map, il s'agit d'une associations clé ->
am
valeur.
• Les clés sont des chaînes de caractères
oh
(String), et la valeur peut être de n'importe
quelle type.
M
a
zi
Ja
en
B
18
II. LE LANGAGE DART
11. Les Structures de contrôles
ed
am
oh
M
a
zi
Ja
en
B
19
II. LE LANGAGE DART
11. Les Structures de contrôles
ed
am
oh
M
a
Il est possible d’utiliser la boucle For sans index
zi
Ja
en
B
20
II. LE LANGAGE DART
[Link] fonctions
ed
• Les fonctions ont une syntaxe de base
am
classique: elle sont composées:
• un nom de la fonction
• Un | des paramètre(s)
oh
• Contenu de la fonction
• un type de retour,
M
a
zi
• Une syntaxe plus courte pour définir une
Ja
fonction DART: en
B
21
II. LE LANGAGE DART
[Link] fonctions • Les paramètres optionnels(Facultatifs):
ed
• Dart Propose deux types des
• Les Fonction anonymes:
paramètres optionnels :
• Syntaxe:
am
• Les paramètres nommés: Les
paramètres optionnels nommés
oh
sont placés entre accolades ({ }) lors
de la déclaration de la fonction et
M
appelé par leurs noms.
• Exemple:
a
• Les paramètres positionnés: Les
zi
paramètres sont déclarés entre
Ja
en crochets ([ ]) .
B
22
II. LE LANGAGE DART
Les paramètres nommés : { …. }
• Un paramétre nommé :
ed
• Doit être utilisé par son nom.
• qui ne dispose pas d’une valeur par défaut , ou qui n’est précèdé par required est automatiquement définit avec un
am
type Nullable
• Un paramétres nommé peut être définit optionnel avec = valeur_par_defaut.
oh
M
a
zi
Ja
en
B
• NB :
23 Un paramétre required peut être nullable : required String ? adresse
II. LE LANGAGE DART
Les paramètres positionnés
ed
• Exemple fonction avec paramètres :
am
• Les paramétres d’une fonction sont basé sur les paramétres positionnés
●
Un paramétre positionné optionnel est spécifier avec le symbole [ .. ]
oh
M
a
zi
Ja
en
B
24
13 P.O.O:
Avec Dart, chaque Objet manipulé est une instance d’une classe.
Chaque classe, appart Null, hérite de la classe racine de dart : la classe Object
ed
●
Le fichier de définition d’une classe
dart, peut être enregistré avec
am
n’importe quel nom.
oh
●
Une classe dart peut avoir un unique
M
constructeur ou plusieurs
constructeurs nommés
a
zi
Ja
en
B
25
13 P.O.O:
Le Constructeur par défaut : Le Constructeur nommé
●
Etudiant() {
ed
[Link]=’’ ;
[Link]=’’ ; [Link](String v_nom, String v_prenom) {
am
●
} [Link]=v_nom;
[Link]=v_prenom ;
Etudiant(String v_nom, String v_prenom) {
oh
●
[Link]=’Master’ ;
[Link]=v_nom;
}
[Link]=v_prenom ;
M
} ●
[Link]({String v_nom=’’, String v_prenom}) {
a
[Link]=v_nom;
●
Etudiant ([Link], [Link]) ;
zi
[Link]=v_prenom ;
●
Etudiant({String v_nom=’’, String v_prenom}) {
[Link]=’ingénieur’ ;
Ja
[Link]=v_nom;
}
[Link]=v_prenom ;
}
en
Instanciation : Etudiant e1 = Etudiant ( … ) ;
B
●
Var e2 = new Etudiant ( … ) ;
●
Var e_master= new [Link](…) ;
26
13 P.O.O:
Les getters et setters :
●
Class Etudiant {
Un membre avec une porté private : doit précéder
ed
●
String _nom=’’ ;
String prenom=’’ ; par underscrore _
am
String get nom () { ●
La visibilité est limité uniquement à :
return this._nom ;
oh
●
Intérieur de la classe
} ●
Dans le même fichier courant !!
M
●
String get nom => this._nom ;
●
utilisation des getters sans parenthésés :
Set setnom(string vnom){ → int get age => this._age ;
a
●
this._nom=vnom ; Utilisation des setters avec parentéses :
zi
●
} → set age(int vAge) => this._age=vAge ;
Ja
●
Main(){
●
Appel :
[Link]=19 ;
en
Etudiant e= new Etudiant(..) ;
e._nom=’xx’ ; print([Link]) ;
B
[Link](‘yy’) ;
print(e._nom)
print([Link])
13.P.O.O:
1. Héritage: class fille extends mère
ed
2. Super
3. Redéfinition
am
oh
M
a
zi
Ja
en
B
28
[Link] des bibliothèques
ed
Syntaxe : import nom_package ;
am
Exemple :
●
Import dart:io ;
import 'package:lib1/[Link]'
oh
●
●
import 'package: lib1/[Link]' show foo, bar;
M
→ Importer uniquement foo and bar depuis
a
[Link].
zi
Ja
●
import 'package: mylib/[Link]' hide foo;
→ Importer toutes les fonctions à l’exception de
en
foo
B
29
THANK YOU !
Hope you like these first course :)
30 Made with by