Ebook Flutter Revolution
Ebook Flutter Revolution
Ebook Flutter Revolution
Bienvenue
1.1 Mon histoire
1.2 Mes débuts avec Ionic
1.3 Alors pourquoi Flutter ?
1.4 Pourquoi ce cours ?
J’ai par la suite longtemps justifié mon choix du framework Ionic en invoquant
sa simplicité.
En fait Ionic n’a jamais était aussi sexy et populaire que React… Mais je suis
toujours parti du principe que si j’avais pu démarrer de zéro avec Ionic, les
autres le pouvait aussi.
Mais pour faire simple, c’est parce que Flutter représente selon moi une
véritable révolution…
Ce n’est pas qu’un simple jeu de mot pour nommer cette formation, c’est
véritablement ce que j’ai ressenti en testant pour la première fois Flutter.
En fait Flutter est un SDK et non un framework comme React, ce qui veut dire
qu’il s’adapte en fait aux environnements de développement d’Android et iOS
via leurs logiciels respectifs.
On développe tout simplement plus vite sur Flutter que sur n’importe quel
autre framework multiplateforme.
Dans ce cours, nous allons reprendre toutes les bases de Flutter et du Dart
en repartant vraiment de zéro.
Le but pour moi est de vous permettre d’aller le plus loin possible dans le
développement de vos applications mobiles avec Flutter.
https://fr.wikipedia.org/wiki/Framework
Il nous faut cependant passer par une phase d’adaptation aux appareils
mobile lors de la création de chaque version iOS et Android.
Flutter en revanche est donc un SDK, qui veut dire littéralement Kit de
Développement (Software Development Kit).
Voyons donc maintenant quels sont les points essentiels à connaître sur
l’utilisation de Flutter.
En fait Flutter nous offre une rapidité de développement que l’on retrouve
avec le développement natif d’application.
Sur Xcode lorsqu’on code avec le Swift et qu’on teste son application en
quelques secondes avec un simulateur d’iPhone.
Mais aussi sur Android Studio avec Java ou Kotlin lorsqu’on teste son
application sur un émulateur Android.
En fait avec Flutter on utilise un éditeur de code (comme Visual Studio Code
dont nous détaillerons la configuration) pour travailler sur nos fichiers Dart.
Mais Flutter a vraiment mis une priorité sur ces animations pour les rendre
très accessibles.
Nous verrons par exemple comme créer avec les Widgets Flutter toute sorte
d’affichage pour nos applications.
Il est évident que Google a conçu Flutter pour proposer la meilleure rapidité
d’exécution possible pour ses applications, mais à quel point une application
peut-elle être plus rapide ?
Avec Flutter, qui je vous le rappelle est un SDK, on accède beaucoup plus
rapidement aux fonctionnalités natives.
À ce stade, c’est assez difficile à vérifier, car les derniers modèles d’iPhone
sont déjà extrêmement performants et les différences de performance se
calculent en millisecondes.
Sur Flutter, les cours en ligne et tutoriels en français restent plutôt rares
pour le moment d’où cette formation.
En ce qui concerne les entreprises qui utilisent Flutter, les plus connus se
comptent pour le moment sur les doigts d’une main.
Vous retrouverez toutes les startups qui l’utilisent sur le site de Flutter:
https://flutter.dev/showcase
Mais pas d’inquiétude, à la fin de ce cours vous ferez peut-être partie des
😉
futurs startups ou développeurs sélectionnés par Google pour mettre en
avant Flutter
Dart est donc un langage très puissant et polyvalent, car il permet de gérer
le côté design avec Flutter mais également la connexion avec Firebase.
Le Dart est un langage orienté objet comme le sont la plupart des langages
de développement logiciel (C#, Swift, ou Objective C).
Avec Ionic,
on développe en HTML, CSS et JS
Avec Flutter, 98% de votre application sera codée en Dart, qu’il s’agisse de la
partie design ou de la connexion à vos bases de données Firebase.
Le langage HTML par exemple est très facile à prendre en main, et on peut
progressivement styliser nos pages avec le CSS puis les dynamiser avec le
JS.
L’avantage est qu’une fois le Dart maîtrisé, on peut tout coder avec ce même
langage jusqu’à la fin du développement de notre application.
Nous allons maintenant parler plus en détail du SDK du Dart dont je vous
laisse le site web: https://dart.dev/
Nous détaillerons les étapes d’installation sur Mac et Windows dans les
prochains chapitres.
Celui-ci contient toutes les bibliothèques Dart que nous utiliserons pour
développer nos applications.
void main() {
print('Hello, World!');
}
Le langage Dart a toujours besoin d’une fonction principale main() pour
exécuter le reste de son code.
On retrouvera ainsi pour chacun de nos codes Dart une unique fonction
main() qui appelle d’autres fonctions à son tour.
void main() {
print('a single quoted string');
print("a double quoted string");
// Strings can be combined with the + operator.
print('cat ' + 'dog');
// Triple quotes define a multi-line string.
print('''triple quoted strings
are for multiple lines''');
}
void main() {
// Dart supports string interpolation.
const pi = 3.14;
print('pi is $pi');
print('tau is ${2 * pi}');
}
On finit par voir un exemple de déclaration de fonction en Dart pour afficher
un nombre dans la console:
// Define a function.
void printInteger(int aNumber) {
print('The number is $aNumber.'); // Print to console.
}
// This is where the app starts executing.
void main() {
var number = 42; // Declare and initialize a variable.
printInteger(number); // Call a function.
}
On déclare la fonction printInteger() en lui indiquant le type de paramètre à
prendre (ici int représente les variables de types nombres).
Ensuite dans notre fonction main(), on peut faire appel à cette fonction
printInteger() en lui indiquant un paramètre de type nombre.
4. Installer Flutter sur macOS
Dans ce chapitre, nous allons voir comment installer le SDK Flutter sur votre
Mac de A à Z.
Une distinction est faite entre les systèmes d’exploitation, car les méthodes
de téléchargement sont différentes entre Mac et PC.
Vous pouvez néanmoins faire par exemple tourner une machine virtuelle sur
votre PC avec MacOS.
Pour installer définitivement le SDK Flutter sur votre Mac nous allons utiliser
le Terminal, cherchez donc le logiciel sur votre Mac et ouvrez-le:
Une fois ouvert votre terminal devrait s’ouvrir au dossier racine de votre
session utilisateur:
Vous pouvez ensuite vous rendre dans le dossier development que vous
devriez avoir créé précédemment:
cd development
Une fois situé dans le dossier development dans votre terminal, nous allons
pouvoir dézipper le fichier télécharger sur le site de Flutter.
unzip flutter_macos_2.2.3-stable.zip
Prenez soin auparavant de situer votre fichier zip dans le dossier
development.
Voilà pour l’installation du SDK Flutter, nous allons maintenant faire en sorte
de le configurer pour un fonctionnement optimal.
export PATH="$PATH:`pwd`/development/flutter/bin"
echo $PATH
Copiez et mettez l’adresse affichée par le terminal de côté pour pouvoir la
réutiliser plus tard.
Je vais vous proposer deux méthodes pour déclarer votre variable globale
d’accès au SDK Flutter.
vim $HOME/.zshrc
Dans le fichier qui s’affiche dans votre terminal, vous allez pouvoir déclarer
l’adresse du SDK Flutter et pouvoir ainsi y accéder depuis tout votre
ordinateur.
export PATH="L_ADRESSE_DU_DOSSIER_FLUTTER_BIN"
Voilà par exemple ce que donne le rendu de mon fichier zshrc:
Pour quitter l’édition du fichier, entrez:
Crtl + C
Puis tapez dans le terminal les caractères suivants pour quitter et enregistrer
votre fichier:
:wq!
Cette commande (write and quite) vous permet de bien enregistrer votre
fichier, devrait être visible en bas de votre terminal:
Pour tester que votre variable PATH a bien été mise à jour, vous pouvez
entrez la commande suivante pour l’afficher:
echo $PATH
Vous pouvez aussi tester par exemple la commande flutter doctor pour
vérifier si la commande flutter est accessible (ne faites pas encore attention
au résultat de la commande):
flutter doctor
Je vous montre maintenant la deuxième méthode, que j’utilise dans la vidéo
pour ceux que ça intéresse.
Si vous le souhaitez, vous pouvez aussi conserver la méthode bash, qui est
similaire, mais moins recommandé pour Mac à ce jour.
Entrez les deux commandes suivantes pour créer puis ouvrir le fichier
bash_profile (vous devez vous trouver dans votre dossier racine utilisateur):
touch .bash_profile
open .bash_profile
Un document texte vierge devrait s’ouvrir, vous pouvez alors lui entrer la
ligne de code suivante:
export PATH=L_ADRESSE_DU_DOSSIER_FLUTTER_BIN
Par exemple voilà ce que j’entre dans mon fichier bash_profile:
export
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/dris
salaoui-sosse/development/flutter/bin
Enregistrez ensuite votre fichier texte et quittez l’éditeur TextEdit, entrez
ensuite la commande source suivante pour appliquer les modifications.
source .bash_profile
Vous pouvez ensuite tester par exemple la commande flutter doctor pour
tester si la commande flutter est accessible (ne faites pas encore attention au
résultat de la commande):
flutter doctor
On passe maintenant à la configuration de Xcode et du lancement de notre
émulateur d’iPhone.
Xcode est un logiciel assez volumineux qui demande chaque année une
mise à jour.
Votre version de MacOS doit aussi être à jour pour permettre à Xcode de
vous faire utiliser les dernières fonctionnalités d’iOS.
Si ce n’est pas déjà fait, mettez donc à jour votre version de MacOS et
installer Xcode.
Une fois le logiciel installé sur votre Mac, entrez les commandes pour
configurer Xcode sur votre terminal:
Une fois ces deux commandes entrées vous pouvez lancer un premier
simulateur d’iPhone 8 avec la commande open:
open -a Simulator
Vous pouvez changer d’appareil iOS en fait un clique-droit sur l’icône de
votre émulateur dans dock et sélectionner par exemple un iPhone 11.
Voilà donc le résultat de votre émulateur iOS qui fonctionne et avec lequel
nous allons pouvoir tester nos applications Flutter.
Vous devriez voir également les différentes SDK supplémentaires qui vont
être installés par la même occasion.
Une fois installé, lancez Android Studio une première fois et ouvrez les
paramètres SDK Managers:
Vous pouvez de cette manière vérifier la présence du SDK Android Build
Tool ainsi que du Android emulator que nous allons utiliser.
Si jamais il manque l’un des outils ou SDK, cochez-le pour l’installer sur
votre Mac.
Vous pouvez cliquez sur le bouton Play pour lancer cet émulateur Android.
Un Pixel 2 devrait donc apparaître sur votre Mac, dans lequel nous allons
pouvoir lancer notre première application Flutter.
flutter doctor
Si vous n’avez pas encore créé d’application Flutter, vous pouvez en créer
une rapidement et la lancer dans votre émulateur Android avec les
commandes suivantes:
En revanche sur Windows vous n’avez pas accès au logiciel Xcode et donc
au développement sur iOS.
Pour cela vous devrez soit installer MacOS sur votre PC ou le faire tourner
sur une machine virtuelle avec un logiciel adapté.
Vous pouvez vous rendre sur le site de Flutter pour télécharger la dernière
version du SDK:
https://flutter.dev/docs/get-started/install/windows#get-the-flutter-sdk
Vous pouvez également utiliser la commande git si vous l’avez installé sur
votre ordinateur pour télécharger la dernière version du SDK Flutter.
Je vous invite quelle que soit la méthode que vous utilisez, de placer le SDK
Flutter dans un nouveau dossier “development“.
mkdir development
start development
Une fois que ce dossier development est ouvert, je vous invite à transférer
le contenu dézippé du SDK Flutter dans ce nouveau dossier.
cd development/flutter/bin
Vous pouvez par exemple tester la commande d’analyse “flutter doctor” qui
vous indique si tout est bien installé sur votre ordinateur.
flutter doctor
Mais pour l’instant, nous ne pouvons le faire qu’en nous rendant dans ce
sous-dossier bin.
Nous pouvons déclarer et mettre à jour nos variables d’environnements
pour pouvoir accéder à la commande Flutter depuis n’importe ou.
Pour cela, tapez dans la barre de recherche Windows “env” et cliquez sur le
résultat “Modifier les variables d’environnement“:
Si la variable PATH ou Path existe déjà cliquez dessus et sur Modifier pour la
mettre à jour.
echo %PATH%
Votre console devrait vous afficher toutes les variables d’environnement de
votre PC.
Elles sont séparées par des point virgules et la dernière devrait être l’adresse
de votre SDK Flutter flutter/bin.
La procédure d’installation est la même que pour Mac, et elle est classique
donc pas d’inquiétude à ce niveau-là.
Une fois que le logiciel Android Studio est téléchargé et installé, ouvrez-le
une première fois.
Sur le bouton Configure, cliquez sur SDK Manager pour vérifier la présence
de tous les SDK dont nous allons avoir besoin par la suite.
Ensuite revenez sur l’écran d’accueil d’Android Studio et cliquez cette fois-ci
sur AVD Manager:
C’est le gestionnaire des émulateurs Android (Android Virtual Device: AVD)
qui nous permettra de les lancer ou d’en créer de nouveaux.
Vous pouvez donc cliquez sur “+ Create Virtual Device” pour créer notre
premier émulateur Android:
Sélectionnez ensuite le modèle d’Android que vous souhaitez reproduire,
personnellement je conserve le choix du Pixel 2 proposé par défaut:
Une fois créé, il devrait apparaître dans votre tableau de bord, vous n’avez
plus qu’à le lancer en cliquant sur l’icône play:
Pendant que votre émulateur Android s’ouvre et se charge correctement,
ouvrez à nouveau votre console Windows.
cd development
flutter doctor
Pour repérer d’éventuelles erreurs du SDK, dans mon cas, je devais encore
accepter les conditions d’utilisation du SDK d’Android, j’ai donc dû entrez
la commande suivante:
flutter doctor --android-licenses
Une fois toutes les conditions d’utilisation acceptées, vous pouvez lancer la
commande run pour lancer votre application:
flutter run
Patientez quelques instants pour voir votre application se lancer dans votre
émulateur Android.
J’ai choisi VSC car Flutter y a créé des extensions qui transforment l’éditeur
en véritable logiciel de développement très complet.
Nous n’aurons même plus besoin d’ouvrir Xcode ou Android Studio pour
lancer nos applications dans un émulateur.
Une fois le logiciel installé et lancer sur votre ordinateur, nous allons installer
les plugins Dart et Flutter de VSC.
Ouvrez le menu des extensions à gauche de votre logiciel, puis tapez dans
la barre de recherche “Flutter”.
Installer ensuite le premier plugin qui s’affiche qui dois avoir été édité par
Dart Code.
Lorsque le plugin Flutter s’installe, le plugin Dart doit lui aussi être installé
automatiquement.
Dans le doute, vérifiez qu’il est bien installé en cherchant le plugin Dart du
développeur Dart Code.
Maintenant que les deux extensions sont installées, nous allons tester la
fonctionnalité la plus intéressante de VSC.
Rendez-vous ensuite dans l’onglet Run de votre menu latéral et cliquez sur
“Run and Debug“.
Mais normalement dès que vous enregistrez votre fichier main.dart, votre
application devrait s’actualiser en direct, voilà toute la magie de Flutter!
L’idée ici est de vous montrer la procédure à suivre lorsqu’on utilise VSC
pour coder ses applications Flutter.
Vous devez comme toujours ouvrir votre terminal et vous rendre dans le
dossier “developmment” qui contient votre SDK Flutter et vos autres
applications.
cd developmment
Une fois que vous vous trouvez dans ce dossier, vous pouvez entrer la
commande “flutter create” pour créer une nouvelle application Flutter avec
son nom:
flutter create my_flutter_app
Cette étape doit être effectué depuis votre logiciel Terminal ou Console, et
non dans Visual Studio.
Sinon vous pouvez aussi rester dans votre terminal, vous rendre dans le
dossier de votre application et la lancer avec la commande “flutter run“:
cd my_flutter_app
flutter run