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
Présentation avec DrawIO – Flutter 1.22
Création du projet
Création du modèle
La structure du modèle
Le JSON
Map et JSON
Le deuxième constructeur
Finalisation du modèle
Le Floating Action Button
Le principe de clé
Le Bottom Sheet
Media Query
Le widget Form
Une liste déroulante dans un formulaire
L’affichage dynamique
Le Persistent Controller
Changer de clavier
Le paramètre validator
L’appel des validations
La condition Else if
Les expressions régulières
Le constructeur de ListView
La liste des challenges
Le widget Dismissible
Personnalisation des challenges
Personnalisation du Dismissible
Dismiss Direction
Le widget AlertDialog
Asynchrone
Async/Await
Async dans notre projet
Première méthode du contrôleur
La fonction addChallenge
L’expression ternaire
Le doublon name
Le package SharedPreferences
L’itération avec la fonction map
L’encodage en JSON
L’utilité de print
Le 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
Le responsive
La collection
NoSQL et le multidex
Correction de bug sur iOS
Getter et Setter
Utilisation de la fonction getDiscussions
L’affichage des discussions
Personnalisation des discussions
Le thème de l’application
Refonte de la fonction checkIdentity
Ajout des redirections
ConnectionState et gestion des erreurs du Future
Gestion des erreurs de Firebase
Le switch
Le widget SimpleDialog
Factorisation du errorHandler
Le Stream
La fonction getChat
Le widget StreamBuilder
Le paramètre onGenerateRoute
L’ID du document
Design du chat
La fonction sendPostChat
Formatter la date
Le tri des documents
Personnalisation des messages
La confidentialité
Couleur dynamique
Intégration du Provider
Le bouton d’ajout de discussion
La fonction sendNewDiscussion
Création de nouveaux composants
Optimisation du code
L’identifiant unique
Le ComponentAlertDialog
La fonction deleteDiscussion
Correction de bug
Le widget RefreshIndicator
Protéger la base de données
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
chapitre précédent
chapitre suivant
Qu’est-ce que le Dart ?
Formation Flutter Master 2022 – Devenez un expert Flutter
Introduction
Qu’est-ce que le Dart ?
Please enable JavaScript
play-sharp-fill
chapitre précédent
Retour à la leçon
chapitre suivant
Hide picture