đ± Initiation au dĂ©veloppement Mobile avec Flutter
Objectifs Pédagogiques
- Connaitre les différentes technologies de développement mobile
- Développer une application mobile simple
- Accepter de ne pas savoir comment tout fonctionne derriĂšre son code
- Savoir utiliser Android studio ou VS Code pour développer avec Flutter
- Créer une interface mobile avec Flutter
- Utiliser les raccourcis dâassistance Android Studio et de refactoring
- Ătre rigoureux des protocoles
- Comprendre le concept de Widget
- Utiliser les outils de développement spécifique à Flutter
- Connaitre les basiques de la programmation Dart
- Naviguer dans la documentation
- Naviguer dans les bibliothĂšque Flutter (Pub.dev)
- Intégrer une bibliothÚque Flutter dans une app
- Comprendre le systĂšme de "Null Safety" en programmation moderne
Letâs do it âïž
Création de votre premiÚre application Mobile avec Flutter
Flutter est un framework mobile multiplateforme, qui est quasi-natif.
En rĂ©alitĂ© le framework Flutter nâutilise ni des composants natifs, ni du web pour son interface mais des composants fait maison qui sont rendus par la couche graphique bas niveau du systĂšme dâexploitation.
En gros imaginez les interfaces de Flutter comme un jeu vidĂ©o rendu sur votre Ă©cran, oĂč les personnages sont des boutons et les niveaux sont des interfaces utilisateur.
Cela permet dâavoir une performance Ă©gal au rendu dâun jeu vidĂ©o (60 FPS), dâĂ©viter dâĂȘtre dĂ©pendant de la plateforme (puisque les couches de dĂ©veloppements graphique sont similaires entre OS) et dâavoir bien plus de performance quâavec un framework web comme Cordova / Ionic.
Les plateformes
Flutter fonctionne sur :
- đČ iOS
- đ€ Android
- đž Le Web
- đ„ Linux, MacOS & Windows
- đ iOT (Objets connectĂ©s)
đ Pour en savoir plus sur les nouveautĂ©s de Flutter
âïž Travail sur les notions !
Avant de commencer les choses sérieuses on va faire un petit tour des concepts de bases.
đ Ce travail compte dans l'Ă©valuation
Séparez vous en plusieurs groupes et répartissez vous les sujets suivants :
- Qu'est-ce que la sérialisation de données, a quoi cela sert ? Ex: transformer une réponse JSON en objet Dart. Et comment faire un appel réseau en Flutter ?
- Différences principales entre Hybride, PWA, Natif & Flutter. Comment choisir l'une ou l'autre de ces solutions dans la vie réelle ? Comment créer la navigation dans une application Flutter ? Donner un exemple avec Navigation 1.0.
- Dart, quâest-ce que câest ? Les diffĂ©rences avec Javascript ? Qu'est ce que la gestion des optionnel en programmation, comment l'implĂ©menter avec Dart ? Comment crĂ©er une classe en Dart ?
- Stateless vs Stateful Widgets, Cupertino vs Material dans Flutter ? Donner un exemple de construction d'une interface avec des widgets Flutter, comprenant au moins un Single Child widget et un Multi Child Widget. Qu-est-ce qu'un Child ? Comment peut-on créer son propre Widget ?
CrĂ©ez un document sur Hackmd, Google Slides, Paste ou nâimporte quel autre outils de prĂ©sentation.
Faites des recherches sur votre sujet, comprenez le (environ 45 minutes)
Présentez de maniÚre pédagogique (avec des exemples de code, des définitions simples et claires) au reste de la promotion. (environ 5 à 10 minutes de présentation)
Déposez votre présentation (avec une page relatant vos sources) sur l'outil de collaboration de votre promotion.
đ Les endroits oĂč chercher
La doc de flutter, et leur super chaine youtube
- Des démos https://gallery.flutter.dev/#/
- Google et Wikipédia
- Reddit, etc.
đČ Votre premiĂšre application mobile

Avant de commencer lâexercice, crĂ©ez un fichier texte (peu importe lâĂ©diteur pour le moment) afin de noter les rĂ©ponses aux diverses questions qui seront posĂ©es durant cet exercice.
Ouvrez lâIDE Android Studio
Normalement vous avez installĂ© les outils en amont de ce cours, si câest pas le cas, alors jâespĂšre que vous avez une bonne connexion, et le guide dâinstallation officiel.
Cliquez sur Create a new Flutter Project
Nous allons crĂ©er un nouveau projet Flutter, qui est le âïžFramework que nous allons apprendre Ă utiliser durant cette formation.

Assurez vous quâil y a bien un bouton Create a new Flutter Project
autrement câest quâil manque le plugin Flutter Ă votre IDE, dans ce cas appelez le formateur ou essayer de vous dĂ©brouiller en lisant la documentation officielle ici)
Choisissez Flutter Application
Vous devriez voir cette fenĂȘtre apparaitre, cliquez sur âFlutter Applicationâ

Remplissez le formulaire
Choisissez un nom de projet comme âmy_first_app
â, les noms en Français sont proscrits par convention, il faut vous habituer Ă lâanglais dans le dĂ©veloppement informatique.

Choisissez ensuite le lieu de stockage de votre code source, puis validez en cliquant sur Next
Cochez bien les 2 cases sous Platform channel language
cela nous permettra de âïžcompiler notre application pour Android et iOS.

Vous devriez voir du code source apparaitre. Maintenant regardez le formateur fixement, on va attaquer les choses sĂ©rieuses đ.

ItĂ©ration 1 - đȘ Cookie Clicker
Vous avez de la chance le projet Hello World de base de Flutter est un clicker ! On va pouvoir partir de cette base :)
Mini défis !
- Vous allez rĂ©aliser une application de type âclicker gameâ.
- Vous allez devoir choisir et réaliser des défis, à chaque défis réalisé vous gagnez le nombre de flamme correspondant.
- A la fin de la journĂ©e regardez votre nombre de flamme, le but du jeu est dâen avoir le plus possible !
Câest quoi un clicker game ?
Le jeu incrĂ©mental (de lâanglais incrĂ©mental), ou idle game (littĂ©ralement « jeu inactif »), ou encore clicker game est un genre de jeux vidĂ©o dont la mĂ©canique de jeu principale consiste en de simples actions Ă lâinteractivitĂ© volontairement limitĂ©e : il peut sâagir de cliquer Ă rĂ©pĂ©tition ou bien de simplement laisser le jeu sâexĂ©cuter, le « joueur » nâayant alors rien Ă faire. Le plus souvent, cette mĂ©canique de jeu entraĂźne une progression monĂ©taire virtuelle permettant dâamĂ©liorer certaines caractĂ©ristiques afin encore une fois dâaccĂ©lĂ©rer lâacquisition monĂ©taire. Ce genre apparu au dĂ©but des annĂ©es 2000 sâest popularisĂ© avec le succĂšs de Cookie Clicker en 2013 et sâest largement rĂ©pandu au sein des jeux sur navigateur. -Wikipedia
Un cookie clicker
Le tout premier du genre :
VoilĂ Ă quoi ressemblait la 1Ăšre version du tout premier jeu du genre :

Le premier Cookie clicker mobile
Principe :
Un Cookie Clicker est un jeu vidĂ©o dont lâobjectif est de produire un maximum de cookies.
SystĂšme de jeu :
Le joueur doit produire des cookies en cliquant sur un cookie situĂ© Ă gauche de lâĂ©cran.
Les cookies ainsi accumulĂ©s permettent dâacheter des objets qui produisent des cookies de maniĂšre autonome ou de façon plus rapide : sont ainsi obtenus fermes, usines, mines, mais aussi souris pour cliquer Ă sa place, etcâŠ
Le prix de ces objets augmentant progressivement. Le joueur a aussi accĂšs Ă des amĂ©liorations permettant dâamĂ©liorer sa production, par objets, par clics, ou dans lâabsolu. Le jeu ne connaĂźt Ă lâheure actuelle pas de fin vĂ©ritable.
Principe des défis :
- Chaque participant choisis les dĂ©fis quâil veut relever.
- Notez les défis que vous voulez relever, ainsi que votre objectif de flammes total.
- DĂšs quâun dĂ©fi est relevĂ© appelez le formateur pour quâil vienne le valider.
Attention si vous faites valider votre dĂ©fis mais quâil nâest pas terminĂ© vous perdez des points !
- Un dĂ©fi rĂ©ussi : Vous remporter le nombre de flamme correspondant đ„
- Un dĂ©fi Ă©chouĂ© : Vous perdez le nombre de flammes correspondant đ§
Liste des défis :
Défi | Flamme(s) |
---|---|
Changer les couleurs de l'interface | đ„ |
Changer le nom de l'application | đ„ |
Prendre un autre thĂšme que celui des cookie | đ„ |
Changer la taille et la couleur de la police | đ„ |
Mettre une image de fond Ă l'application | đ„đ„ |
Mettre un icone d'application personnalisĂ© | đ„đ„ |
Sauvegarder le nombre de cookie (https://pub.dev/packages/shared_preferences) | đ„đ„ |
A chaque amĂ©lioration achetĂ©, le coĂ»t de l'amĂ©lioration augmente | đ„đ„ |
Mettre une image de cookie Ă la place du bouton | đ„đ„ |
Faire apparaĂźtre le coĂ»t de chaque amĂ©lioration et ce qu'elle fait | đ„đ„ |
Pouvoir acheter un multiplicateur de cookie qui coĂ»te 8 đȘ qui fait +1 a chaque clique | đ„đ„đ„ |
Animer le changement de cookie đȘ possĂ©dĂ© | đ„đ„đ„ |
Ajouter une bibliothĂšque Ă son application et s'en servir | đ„đ„đ„ |
Changer la police en utilisant une bibliothĂšque Google Fonts | đ„đ„đ„ |
Les graphismes sont cohĂ©rents | đ„đ„đ„ |
Pouvoir acheter un "clique automatique" qui fait +1 toutes les secondes | đ„đ„đ„đ„ |
Faire apparaĂźtre chaque curseur achetĂ© sur le cookie (utiliser une gridview) | đ„đ„đ„đ„ |
Faire une animation d'un '+1' qui apparait et disparaĂźt | đ„đ„đ„đ„ |
Le cookie change d'apparence en fonction du nombre cliquĂ© (par exemple en fonction de la frĂ©quence de clique) | đ„đ„đ„đ„ |
Le cookie change d'apparence en fonction du nombre de cookie total | đ„đ„đ„đ„ |
Ajouter un son et une vibration Ă votre jeu | đ„đ„đ„đ„đ„ |
Exemple

Assets graphiques
Voici, pour vous aider, quelques assets graphiques pour démarrer rapidement
Nom | Image |
---|---|
Cursor | Image Curseur |
Background | Image Backround |
Cookie | Image Cookie |
White Halo | Image Halo |
Hand | Image Main |
Ressources Ă lire pour avancer
- Pour comprendre le concept de base de Flutter : les widgets
- Ajouter une image Ă votre projet Flutter
- Les layouts avec Flutter, comment agencer, construire son interface widget par widget
- Utilisez le Hot Reload (vous ne voudrez plus jamais faire de web aprĂšs :p)
- Les animations avec Flutter
- â Source trĂšs utile pour voir comment les widgets se comportent, quand les utiliser etc. Le material Design pour Flutter
- Générer une palette de couleur pour material
- GĂ©nĂ©rer les diffĂ©rentes tailles dâimage pour un icone dâapplication
- Tapez âFlutterâ sur le play store ou lâapp store pour avoir des applications de âdĂ©moâ avec des themes et idĂ©es et mĂȘme du code directement parfois
- Comment ajouter des bibliothĂšques Ă votre application ?
- đ Et le meilleur site du monde pour les bibliothĂšques Flutter : Pub.dev