Programme :
Programme
1. Introduction à la formation Flutter & Dart
- Retour sur le développement mobile et ses évolutions
- Panorama des outils disponibles pour le cross-platform
- Présentation générale de Flutter
- Positionnement sur le marché (comparaison avec React Native), intérêt et stratégie de Google
- Particularités de Flutter : vues dynamiques, widgets, hot reload…
- Comprendre l’architecture de Flutter
- Outils de développement
- Atelier : Installation de Flutter et configuration de l’environnement de développement.
2. Le langage de programmation Dart
- Introduction à Dart et l’intérêt d’utiliser un langage compilé
- Principes et concepts fondamentaux
- Compilations JIT (Just In Time) et AOT (Ahead Of Time)
- Conventions de codage, noms et ordonnancement
- Variables, types, et opérateurs
- Structure de contrôle : if, else, while…
- Programmation orientée objet avec Dart : classes, constructeurs, méthodes, héritage
- Gérer les erreurs
- Atelier : Découverte du langage Dart, création de programmes basiques et manipulation des fonctionnalités via le DartPad.
3. Introduction à Flutter et widgets de base
- Structure et composants d’une application Flutter
- Le code dans main.dart
- Hello World : exécuter une première application Flutter
- Utiliser un package externe
- Cycle de vie d’un widget
- Widgets de base : Text, Row, Column, Stack et Container
- Les widgets Material Design
- Travailler avec des images, styles ou polices
- Avantages du Hot Reload et Hot Restart
- Exemples de cas pratiques : Création d’une première application Flutter, ajout et manipulation des widgets les plus utilisés.
4. Création de layouts
- Vue d’ensemble de la disposition des éléments dans une application Flutter
- Widgets parents et enfants
- Comprendre la décomposition d’une interface
- Aligner et changer la taille des widgets
- GridView, ListView et Stack
- Utiliser les thèmes
- Introduction aux animations
- Le catalogue de widgets Flutter
- Exemples de cas pratiques : mise en œuvre des bonnes pratiques pour construire une UI attractive et intuitive, travail sur la disposition des éléments d’une application à l’écran.
5. Interactivité et gestion des états
- Etat des widgets : stateful et stateless widgets
- Penser déclaratif
- La méthode setState()
- Les différentes approches de la gestion des états
- Créer un widget interactif
- Exemple de cas pratique : création de widgets stateful pour réagir aux actions de l’utilisateur.
6. Navigation et routing
- Le Navigator et les routes dans Flutter, principes de fonctionnement
- Créer une nouvelle route
- Naviguer entre deux écrans : MaterialPageRoute, méthodes push() et pop()
- Nommer une route
- Passer des données d’un écran à un autre
- Exemples de cas pratiques : ajout de routes (pages) et implémentation d’une navigation entre celles-ci.
7. Bibliothèques et packages Dart
- Description des bibliothèques principales de Dart
- Importer une bibliothèque
- Collections : listes, ensembles, maps
dart:async et les classes Future et Stream - Fonctions basiques et paramètres de fonctions
8. Back-end et gestion des données
- Le package http et connexion à un serveur externe
- Obtenir des données de localisation pour Android et iOS
- Utiliser la bibliothèque dart:convert et parser du JSON
- Présentation générale de SQLite, le plugin sqflite
- Créer la base de données et implémenter un modèle
- Opérations CRUD et interactions avec la base
- Exemples de cas pratiques : ajout de Google Maps à l’application développée précédemment, connexion à différentes APIs, utilisation d’SQLite et ajout d’interactions à une base de données.
Introduction à Flutter
- Origine du produit
- Pourquoi le nouveau langage Dart ?
- Architecture d’une application Flutter
- Android Studio et IntelliJ
- Le “fast development” grâce au Hot Reload
- Mise en place du débugueur
- Material Design étendu pour les environnements iOS (Cupertino) et Android
- L’accès aux Sensors et fonctionnalités du smartphone
- Création d’un premier projet dans Android Studio
- Utiliation du simulateur
- Coder dans main.dart
Exemple de travaux pratiques
- Après installation de Android Studio, création d’une petite application en utilisant le scaffolding, lancement de l’émulateur, test et debug
Présentation du langage Dart
- Les variables
- Constantes et final
- Les chaînes de caractère, les strings
- Les booléens
- Listes et Map
- Les conditions
- Les différentes sortes de boucle
- Les diverses sortes de fonction
- Les classes et objets avec Dart
- Constructeurs de classe
- Méthodes et variables
Exemple de travaux pratiques
- Création d’une classe et d’instances en utilisant Dart, intégration au précédent exercice, test et debug
Environnement Dart et Flutter
- Les bibliothèques de Dart et ses constituants
- Gestion des listes et collections de Dart
- L’interface CLI de Flutter
- Architecture d’un projet Flutter sous Android Studio
Exemples de travaux pratiques
- Utilisation avancée de l’interface CLI de Flutter
- Développement d’une petite application utilisant les collections en Dart
Les widgets
- Structure et définition d’un widget
- L’objet Render, le rendering
- Construire des interfaces graphiques avec des widgets
- Les widgets dynamiques ou statefull
- Les widgets statiques ou stateless
- Les layouts
- Les trees (Elements et Widgets)
- Les piles
- Colonnes et lignes
- Les widgets de Cupertino (iOS)
- Passage d’informations entre widgets
- Les widgets de type “liste” et le scrolling associé
- Création de pages de saisie
- Héritage de widgets
Exemple de travaux pratiques
- Création d’une application interface graphique utilisant différents widgets, mise en oeuvre de la communication entre widgets entre parents et enfants
Navigation et routing dans Flutter
- Définir des routes
- Navigation grâce aux routes
- Passage de données entre routes
Exemple de travaux pratiques
- Mise en oeuvre de routes afin de passer d’une page à une autre avec Flutter
Les principaux design patterns dans Flutter
- Les patterns de gestion d’état système
- Choisir entre le pattern MVVM et BLoC
- Les autres importants patterns dans Flutter
Persistance des données
- Persistance des données
- Avec SQLite
- Avec l’ORM Moor
- Accès au système de fichiers
- Les “shared preferences”
Exemple de travaux pratiques (à titre indicatif)
- Ajout de persistance de données en utilisant le système de fichiers, SQLite et Moor
Compléments
- Internationalisation
- Déploiement