Formation en Développement: Flutter - Développement d'applications mobiles multiplateformes - Ascent Formation
Retour aux formations
Développement

Flutter - Développement d'applications mobiles multiplateformes

3 jour(s)21h

Description

Objectif de formation : Permettre aux participants de concevoir, développer et déployer des applications mobiles multiplateformes performantes avec Flutter et le langage Dart, en maîtrisant l'architecture, la gestion de l'état, l'intégration d'API et les bonnes pratiques de développement professionnel. Un projet applicatif fil rouge est développé progressivement tout au long de la formation — de la configuration de l'environnement jusqu'au déploiement sur les stores — permettant à chaque participant de repartir avec une application fonctionnelle complète.

Objectifs pédagogiques

  • Maîtriser les fondamentaux du langage Dart et son écosystème
  • Comprendre l'architecture Flutter et la logique orientée widgets
  • Créer des interfaces utilisateur attrayantes, réactives et adaptées à tous les écrans
  • Gérer l'état d'une application avec les patterns professionnels (setState, Provider)
  • Intégrer des API REST et assurer la persistance locale des données
  • Implémenter la navigation multi-écrans et le routage
  • Tester, déboguer et optimiser une application Flutter
  • Déployer une application sur les stores iOS et Android

Public concerné

Développeurs souhaitant créer des applications mobiles iOS et Android à partir d'une base de code unique
Développeurs web (JavaScript, TypeScript) ou backend (Java, C#, Python) souhaitant se reconvertir au développement mobile
Tech leads et responsables techniques évaluant Flutter pour leurs projets

Prérequis

Expérience dans au moins un langage de programmation orienté objet (Java, C#, JavaScript, Python ou équivalent)
Notions de base en développement logiciel (fonctions, classes, structures de données)
Aucune connaissance préalable de Flutter ou Dart requise

Déroulé du programme

1

Module 1 — Dart : le langage de Flutter (3h)

3h
  • Pourquoi Dart ? Positionnement dans l'écosystème mobile, avantages face à JavaScript et Kotlin
  • Syntaxe fondamentale : variables, types fortement typés, constantes, null safety
  • Structures de contrôle : conditions, boucles, fonctions
  • Programmation orientée objet : classes, objets, constructeurs, héritage, interfaces, mixins
  • Gestion des collections : listes, maps, sets — création et itération
  • Asynchronisme en Dart : Future, async/await, Streams — indispensable pour les appels réseau
  • Gestion des exceptions et bonnes pratiques de code Dart
  • Travaux pratiques : exercices progressifs sur la syntaxe Dart — écriture de classes métier, manipulation de collections, simulation d'appels asynchrones avec Future et async/await. Prise en main de l'environnement DartPad puis Android Studio / VS Code
2

Module 2 — Architecture Flutter et fondamentaux des widgets (3h)

3h
  • Architecture Flutter : moteur de rendu Skia/Impeller, arbre de widgets, cycle de vie
  • Tout est widget : widgets Stateless vs Stateful — différences, cas d'usage, bonnes pratiques
  • Les widgets fondamentaux : Container, Row, Column, Stack, Expanded, Padding, SizedBox
  • Material Design et Cupertino : construire une interface cohérente iOS et Android
  • Hot reload et hot restart : workflow de développement accéléré
  • Structure d'un projet Flutter : dossiers, fichiers, pubspec.yaml, gestion des dépendances (pub.dev)
  • Configuration de l'émulateur et des devices physiques
  • Travaux pratiques : création du projet fil rouge — mise en place de la structure, construction du premier écran avec widgets de base, premier hot reload, personnalisation du thème Material
3

Module 3 — Interfaces utilisateur avancées et responsive design (3h)

3h
  • Layouts avancés : Flex, Wrap, GridView, ListView — gestion du scroll et des listes dynamiques
  • Widgets d'interaction : TextField, Form, validation, boutons, GestureDetector
  • Adaptation aux différentes tailles d'écran : MediaQuery, LayoutBuilder, responsive design
  • Thèmes et styles globaux : ThemeData, couleurs, typographie, cohérence visuelle
  • Assets : images, icônes, polices personnalisées — intégration et optimisation
  • Widgets personnalisés : créer ses propres composants réutilisables
  • Travaux pratiques : construction de l'écran principal du projet fil rouge avec liste dynamique, formulaire de saisie validé, images et thème personnalisé — rendu adaptatif testé sur émulateurs iOS et Android
4

Module 4 — Gestion de l'état (2h)

2h
  • Pourquoi la gestion de l'état est le sujet central en Flutter
  • setState : limites et cas d'usage appropriés
  • Quand utiliser setState vs Provider — règles de décision pratiques
  • Introduction aux patterns avancés : BLoC/Cubit pour les projets d'équipe (panorama)
  • Bonnes pratiques d'architecture : séparation UI / logique métier
  • Travaux pratiques : migration du projet fil rouge vers Provider — extraction de la logique métier, mise en place d'un ChangeNotifier, liaison avec l'interface
5

Module 5 — Données : API REST et persistance locale (3h)

3h
  • Appels HTTP avec le package http et Dio : GET, POST, PUT, DELETE
  • Sérialisation JSON : dart:convert, fromJson/toJson, gestion des erreurs réseau
  • Affichage asynchrone : FutureBuilder et StreamBuilder
  • Persistance locale des données : SharedPreferences : stocker des préférences et petites données simples, SQLite avec sqflite : base de données locale pour des données structurées
  • Gestion des états de chargement : loading, error, empty, success
  • Sécurité des appels API : gestion des tokens, headers d'authentification
  • Travaux pratiques : intégration d'une API REST publique dans le projet fil rouge — appel, désérialisation JSON, affichage avec FutureBuilder, gestion des erreurs réseau, sauvegarde locale avec SharedPreferences
6

Module 6 — Navigation et routage (2h)

2h
  • Navigation entre écrans : Navigator 2.0 et routes nommées
  • Passage de données entre écrans : arguments, résultats de retour
  • Navigation conditionnelle : authentification, redirection, deep linking
  • BottomNavigationBar, Drawer et TabBar : navigation principale de l'application
  • GoRouter : introduction au package de routage recommandé par l'équipe Flutter
  • Travaux pratiques : mise en place de la navigation complète du projet fil rouge — écrans multiples, passage de paramètres, navigation principale avec BottomNavigationBar
7

Module 7 — Tests, débogage et performance (3h)

3h
  • Flutter DevTools : inspecteur de widgets, analyse mémoire, profiling des performances
  • Déboguer avec breakpoints, logs et le widget inspector
  • Identifier et corriger les problèmes de performance : rebuilds inutiles, jank, images non optimisées
  • Tests unitaires avec flutter_test : tester la logique métier indépendamment de l'UI
  • Tests de widgets : tester le rendu et les interactions
  • Introduction aux tests d'intégration
  • Travaux pratiques : session de diagnostic sur le projet fil rouge — identification des rebuilds inutiles avec DevTools, optimisation, écriture de tests unitaires sur la logique métier et de tests de widgets sur un composant clé
8

Module 8 — Déploiement et bonnes pratiques (2h)

2h
  • Préparer l'application pour la production : configuration, icônes, splash screen, numéro de version
  • Signature de l'application Android : keystore, build.gradle, APK vs App Bundle
  • Soumission sur le Google Play Store : étapes, prérequis, délais
  • Préparation pour l'App Store iOS : certificats, provisioning profiles, Xcode
  • Bonnes pratiques finales : organisation du code, gestion des dépendances, documentation
  • Présentation finale du projet fil rouge : démonstration de l'application complète
  • Travaux pratiques : build de production de l'application fil rouge sur Android (App Bundle signé), vérification de la conformité store, checklist de déploiement iOS, présentation finale collective

Informations

Durée

3 jour(s)

21h

Tarif

1850 € HT

HT