Formation Flutter Master 2022 – Devenez un expert Flutter
Introduction
Bienvenue
Qu’est-ce que le Dart ?
Les prérequis
Télécharger la bonne version de Flutter
Installation des logiciels requis
Installation sur Windows
Installation sur macOS
Installation sur macOS [ANCIENNE VERSION]
L’application Ma carte de visite
Challenge : niveau 1
L’application TheQuizz V1
Présentation de l’application avec DrawIO – Flutter 1.22
Création du projet
Organisation du projet : le système MVC
Création du StatefulWidget
Le principe du modèle
Le constructeur de classe
Le widget SafeArea
Création de la structure du screen
Le widget buildQuestion
Vrai ou Faux
Le score
Les listes
La création du contrôleur
Fonctionnement du modèle avec le contrôleur
La fonction getAnswer
La fonction getQuestionText
La propriété length
La fonction shuffle
Connexion du contrôleur au screen
Connexion du widget buildQuestion
Les conditions If Else
L’incrémentation
La fonction initState
Activation du rendu dynamique
Le site Pub.dev
Installation du package RFlutter Alert
Création de la boîte de dialogue
La fonction pop du Navigator
Le mot clé static
Le widget dynamique
Les premières connexions
Quelques corrections
Déclaration des paramètres
Factorisation des DialogButtons
Dernier correctif
L’application TheQuizz V1.1
La migration des packages – Flutter 3.3.8
Local ou privé
TextButton
Appliquer les recommandations
Bug d’affichage
Challenge : niveau 2
L’application ICanDOIT V1
Connection au contrôleur
Correction de bug
Initialisation des challenges
Récapitulatif
Initialiser au démarrage
L’architecture de l’application
Un seul objet contrôleur
Le passage d’informations
Les données nécessaires
Le Future Builder
Test du Future Builder
Personnalisation et correction d’erreurs
L’animation de chargement
La fonction remove
Ajout de la fonctionnalité
Le correctif temporaire
Création de la SnackBar
L’opérateur ‘Par défaut’
Correction de bug
L’état de notre code
Le State Management
Mise en place du Provider
L’accès aux données via le Provider
Protection de la liste de challenges
Modification des Futures
Modification de la fonction remove
Nettoyage du code
Récapitulatif
Refactorisation et paramètre onSaved
L’application ICanDOIT V1.1
Null Safety oblige – Flutter 3.3.8
Conflit entre Null Safety et valeur par défaut
Appliquer toutes les recommandations
Correction de bugs
L’application The Chat V1
Introduction avec DrawIO – Flutter 1.22
L’organisation
Les routes
La Map
La Stack
Création du screen d’accueil
Correctif et ajout des boutons
Personnalisation des boutons
Le widget Flexible
Le screen Se connecter
Les fonctions du Navigator
Factorisation et nettoyage du code
Connexion de l’AppBar
Le ComponentButton
Personnaliser les champs du formulaire
Factorisation du TextFormField
Le screen S’inscrire
Finalisation du screen et optimisation
L’animation avec le widget Hero
Introduction à Firebase
Configuration sur Android
Migration vers AndroidX
Configuration sur iOS
Ajout de Firebase dans notre projet
L’alternative à Async/Await
Création d’un utilisateur sur Android
Correction de bug sur iOS
Récupération des données du formulaire
Vérification des champs du formulaire
Le TextEditingController
Personnalisation des erreurs
La sauvegarde de l’historique
Se connecter avec Firebase
Intégration de l’authentification et de la redirection
La déconnexion
Correction de bug
Le fonctionnement de Firebase
La fonction checkIdentity
Intégration de la fonction checkIdentity dans nos screens
Suppression des screens dans la pile
L’application The Chat V1.1
Introduction – Flutter 3.3.8
Nouvelle version Firebase
Du changement côté Firebase
Les recommandations classiques
Deux cas particulier
Finir la liste des problèmes
Ajouter un nouveau paramètre dans Gradle
Deux erreurs
Quelques ajustements
Mise à jour du gestionnaire d’erreurs
Challenge : niveau 3
L’application NearMe V1
Présentation avec DrawIO – Flutter 1.22
Création du projet
Le package GoogleFonts
Le BottomNavigationBar
Le widget CurvedNavigationBar
L’affichage des pages
Le contrôleur de nos pages
Installation du package Google Maps
L’API
Places API
Configuration iOS et Android
Google Maps en fonctionnement
Les requêtes Http
Création du contrôleur
Le résultat de la requête
Création du modèle
La boucle for
Les alternatives recommandées
Test et correctifs
Par défaut
Uri et Url
Les constantes globales
Les paramètres de notre requête
Le package geolocator
Intégration du geolocator
Changement de channel
Simuler la localisation
Concatener, arrondir, tronquer
La collection Set
Le MarkerID
Générer la collection
Réglage de la caméra
Correction de bug
Évolution de notre contrôleur
Remplacement du check des marqueurs
La partie configuration de notre application
Finir les DropdownButton
Personnalisation de notre config content
Challenge niveau 4
Ajout du provider
L’application Flutter™ IN’French V1
Présentation – Flutter 1.22
Création du projet
L’AppBar
Utilisation du widget ThemeData
Le widget Drawer
On ajoute un listView
Les liens du menu
Le logo Flutter
Mise en cache
Personnalisation
La structure de nos articles
Challenge Cloud Firestore
Cloud Firestore sur Android
Cloud Firestore sur iOS
Intégration du provider
Le premier article
La méthode principale
Le modèle
Intégration du modèle
Comprendre les retours
Notre système de vérification
Test et finalisation
Intégration du contrôleur
Débogage et tests
Le ListView
Correction de bug
Personnalisation
La structure du contact screen
Factorisation
Lancer des url
Extraction et interraction
Fonctionnalité avancée
Structure de l’ArticleScreen
La route dynamique
Le widget FittedBox
Calcul de la hauteur
La fonction de rafraichissement
Les limitations de l’application
Intégration du package
Génération du Html
L’application Circle Action V1
Introduction – Flutter 1.22
Challenge
Gérer l’interface
Le concept d’animation et Flutter
Le Ticker Provider
Le widget AnimationController
Le widget Animation
Mise en pratique
Les assets
La rotation
Widget Stack et interaction
Le contrôleur en action
L’interpolation
Pseudo-aléatoire
Définir la couleur
Décodage
L’algorithme final
Utilisation de l’algo
Relancer le jeu
Correction de bug
Ajout du texte
Challenge : le modèle
Création du modèle
La liste d’action
La fonction getAction
Écouter l’animation
L’ordre d’exécution
Intégration du callback
Personnalisation du SimpleDialog
Memory Leak
L’application BuyIT V1
|
1 quiz
Introduction – Flutter 1.22
Initialisation du projet
Le mot-clé export
Installation de Firebase
Les champs du formulaires
Le bouton animé
Ajout logo et responsive
Validation et sauvegarde
Nouvel utilisateur et page d’inscription
Tests et correctifs
Le widget Orientation
Capturer les erreurs Firebase
Snackbar et context
Fermer le clavier
Animation et reset
Les fonctions globales
Modifier le thème
La fonction where
Test du contrôleur
La condition noMoreProd
Notre pagination en théorie
La pagination avec Cloud Firestore
Le widget StreamController
ScrollController et Listener
L’offset
Intégration de getPromo
Stocker les DocumentSnapshot
L’architecture de notre BDD
Le composant
Agencement de notre product card
Quelques ajustements
Le prix
Limiter le nombre de caractères
La bannière promo
Debugging et optimisation
La structure du produit
Introduction à la sérialisation
Générer le fichier
Nos JsonKey
Le mot-clé factory
L’application web BuyIT Admin V1
Présentation de l’application – Flutter 2.0.4
Flutter 2.0.4
Les trois types de test
Test d’intégration
La méthode Test Driven Development (TDD)
Mini-projet blockchain : introduction
Mini-projet blockchain : initialiser un objet à chaque test
Mini-projet blockchain : l’objet Block
Mini-projet blockchain : développer en partant du test
Mini-projet blockchain : le bloc Genesis
Mini-projet blockchain : le dernier test
Le socle de l’application
Les packages de base
Nos constantes
Récupérer les ressources
Ajout des fonctions manquantes
La solution classique pour mettre à jour son code
Flutter Fix
Erreur au lancement
Configurer Firebase pour le web
Intégrer le contrôleur
Revue des changements
Le nouveau format des erreurs de Firebase
Restreindre l’accès à la console
Deux erreurs à corriger
Les erreurs génériques
Null Safety : mise à jour vers Flutter 2.2
Null Safety : introduction
Null Safety : le suffix “?”
Null Safety : les autres suffixes
Null Safety : place à la pratique
Null Safety : les derniers changements
Connexion automatique
Un menu qui reste ouvert
Montée en gamme du menu
Quelques retouches
Challenge : reproduire la maquette
Nouvel indicateur de chargement et StreamBuilder
Structurer nos modules
Le moule de configuration
leçon précédente
leçon suivante
L’application Ma carte de visite
Formation Flutter Master 2022 – Devenez un expert Flutter
L’application Ma carte de visite
Application disponible via
le cours débutant
. À faire avant de continuer.
leçon précédente
Retour au cours
leçon suivante