Objectifs de la formation / Compétences visées :

  • Développer une application utilisable sous Android et iOS
  • Reconnaître le SDK et le Framework Flutter afin de réaliser des fonctionnalités sur les deux plateformes
  • Concevoir une application Flutter du début à la fin, impliquant l’utilisation de bases de données.

Les plus de la formation :

  • Ciblé à toute personne désirant améliorer ses compétences
  • Attestation à la fin de la formation
  • Formation conçu par des professionnels
  • Support de formation offert gratuitement
  • Espace dédié pour la discute avec les consultants

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