--- title: Developpement d'applications multi-plateforme tags: Mobile,Android, iOS, Flutter, Dart description: View the slide with "Slide Mode". --- # Developpement d'applications multi-plateforme avec Flutter/Dart! <!-- Put the link to this slide here so people can follow --> Ce cours est destiné a la troisième promotion du programme de mise a niveau des entrepreneurs de l'ambassade des Etats-Unis au Togo (Emerging Voice Center). Dans ce cours nous verrons comment développer rapidement des applications pour iOS et Android à partir d'un seul code source --- ## Qu'est ce que s'est Flutter? Flutter est un Sdk (Software Development Kit) mobile de Google pour developper des applications de grandes qualites en un temps record pour iOS et Android. La premiere version release de flutter est sortie en Mai 2017. Elle est libre et open-source. Les bénéfices de Flutter: - Développement rapide - Interface utilisateur Expressif et flexible --- ## Qu'est ce que Dart? Dart est un langage de programmation oriente objet basé sur des classes. Elle est facile d'utilisation et très flexible. Elle dispose des framework très robuste pour faire du Desktop, du Mobile et du Web. --- ## Dart Maintenant nous allons passé aux choses sérieuses en faisant un tour rapide sur comment développer en Dart. Nous allons utiliser l'editeur en ligne https://dartpad.dartlang.org/ ### La syntaxe de base ```dart void main(){ } ``` ### Les variables Pour déclarer une variable en dart on utilise le mot clé **var** ```dart void main(){ var number=13; var name="ameklou"; var solde=11.01; var available=true; } ``` Il est possible de declarer des variables sans utiliser le mot cle var. Par defaut Dart utilise un typage dynamique c'est a dire il reconnait automatiquement le type de variable utilise. ```dart void main(){ int number=13; String name="ameklou"; double solde=11.01; bool available=true; } ``` On a aussi les constantes qu'on definit avec les mots cles **const** et **final**. les constantes une fois definis ne peuvent modifies. --- ### List Pour declarer une liste on utilise les crochets [] ```dart void main(){ var list=['open','dev','lab']; print(list); print(list.length); print(list[2]); var list2= const [1,2,3]; } ``` --- ### Map Les Maps sont comme des dictionnaires en python. ```dart void main(){ var student={ 'name':'ameklou', 'age':'1101', 'size':11.01, 'available':true }; print(student); print(student.length); } ``` --- ### Les fonctions ```dart void main(){ name=fullName('Eklou','Kodjo'); print(name); } String fullName(String firstname, String lastName){ return "$firstname $lastName"; } ``` ```dart void main(){ name=fullName('Eklou','Kodjo'); print(name); } String fullName(String firstname, String lastName)=> "$firstname $lastName"; ``` Il est possible de preciser des parametres par defautpour les fonctions. ```dart void main(){ name=fullName('Eklou'); print(name); } String fullName(String firstname, String lastName="kodjo")=> "$firstname $lastName"; ``` ### if - else ```dart void main(){ var number=13; if(number>100){ print("Large number"); }else if(number<100){ print('Small number'); }else{ print("Number is 100"); } } ``` On peut reecrir ceci avec les ternieres. ```dart void main(){ var number=13; String Status=number<100?"Snall number":"Large number"; print(Status); } ``` --- ### For ```dart void main(){ for(int i=0; i<13;i++){ print($i); } } ``` --- ### While ```dart void main(){ int i=0; while(1<13){ print($i); i++; } } ``` --- ### les classes Elles permettent de definir un objet qui est un ensemble de fonctions et variables regroupees au meme endroit. ```dart void main(){ Student amelie= Student(); Student nnaka= new Student(); } class Student{ } ``` ```dart void main(){ Student amelie= Student('amelie',13); Student nnaka= new Student('nnaka',1101); print(amelie.name) } class Student{ String name; int age; Student(String name, int age){ this.name=name; this.age=age; } } ``` ```dart void main(){ Student amelie= Student(); Student nnaka= new Student(); } class Student{ String name; int age; Student(this.name, this.age); } ``` --- ### L'heritage ```dart void main(){ EnglishStudent nnaka= new EnglishStudent('nnaka',13,'English'); print(nnaka.speciality); } class Student{ String name; int age; Student(this.name, this.age); } class EnglishStudent extends Student{ String speciality; EnglishStudent(String name,int age,this.speciality):super(name,age); } ``` ---