---
# System prepended metadata

title: Developpement d'applications multi-plateforme
tags: [' Dart', ' Flutter', Mobile, ' iOS', Android]

---

---
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);
}
```


---
