TP14 Réaliser des Animations en Flutter
TP14 Réaliser des Animations en Flutter
-
Objectifs
- Comprendre et appliquer les concepts d’animations explicites et implicites dans Flutter.
- Utiliser des classes comme AnimationController, Tween, et CurvedAnimation pour créer des animations complexes.
- Mettre en place des animations déclenchées par des interactions, comme des clics, des gestes ou des sélections dans l’interface.
- Gérer les états des animations en réponse aux événements utilisateur.
-
Application
-
Exigences Fonctionnelles :
- Création et Gestion des Animations
- L’application doit inclure des animations continues (par exemple, rotation ou changement de couleur).
- Les animations doivent pouvoir être déclenchées par des interactions utilisateur, comme un clic sur un bouton ou un geste (glissement).
- Animations avec Interaction
- L’utilisateur doit pouvoir contrôler certaines animations via des boutons (agrandissement/rétrécissement, changement de couleur).
- Des animations doivent être déclenchées par des gestes, comme un glissement (swipe).
- Transitions Animées
- Les changements de position (slide), de taille (scale), ou d’opacité (fade) doivent être animés.
- Les transformations doivent inclure des rotations ou des changements d’échelle.
- Effets d’Animations Implicites
- Les animations implicites doivent être implémentées via des widgets comme AnimatedContainer ou TweenAnimationBuilder.
- Les transitions implicites doivent combiner plusieurs propriétés (taille, couleur, bordure).
- Interface Dynamique et Intuitive
- Tous les widgets animés doivent être disposés de manière claire et intuitive.
- L’application doit inclure un menu animé (Drawer) qui s’ouvre avec une transition fluide.
- Un bouton doit être utilisé pour déclencher ou contrôler chaque animation distincte.
- Arrière-Plan Animé
- L’application doit inclure un arrière-plan dynamique avec un changement de couleur graduel et continu.
- Gestion des Durées d’Animation
- Chaque animation doit respecter une durée définie (entre 2 et 7 secondes).
- Comportement des Widgets Animés
- Les animations doivent se comporter de manière fluide et sans discontinuité.
- Les widgets animés doivent être réactifs et adaptés aux actions de l’utilisateur.
- Compatibilité Multiplateforme
- L’application doit fonctionner correctement sur les appareils Android et iOS.
-
Contexte
- Vous allez créer une application Flutter démontrant une variété d’animations et interactions. Cet examen vous permettra d’explorer et de mettre en œuvre différentes techniques d’animation en Flutter, y compris des transitions implicites et explicites, des animations liées à des gestes, et des transformations dynamiques.
-
Instructions
- Création de l’application
- Créez un nouveau projet Flutter nommé AnimationMasteryExam.
- Ouvrez le fichier principal main.dart sous le dossier lib.
- Partie 1 : Animations de Base
- 1. Animation Continue :
- Créez un conteneur carré vert (100×100 pixels) qui effectue une rotation continue.
- Utilisez un AnimationController pour gérer cette animation.
- 2. Animation de Couleur :
- Créez un conteneur rond (cercle) de 80 pixels de diamètre.
- Ce conteneur doit passer progressivement du bleu au rouge lorsqu’un bouton est pressé.
- Utilisez un ColorTween avec un bouton pour déclencher cette animation.
- 3. Animation de Taille avec Interaction :
- Créez un conteneur carré initialement de 100×100 pixels.
- Ajoutez un bouton permettant d’alterner entre deux tailles (100×100 et 200×200 pixels).
- Utilisez un ScaleTransition pour animer cette transformation.
- Partie 2 : Animations Avancées
- 4. Animation d’Opacité (Fade In/Out) :
- Créez un texte au centre de l’écran.
- Lorsqu’un bouton est pressé, le texte doit disparaître ou réapparaître avec un effet de fondu (FadeTransition).
- 5. Animation de Position (Slide) :
- Ajoutez une barre (rectangle de 300 pixels de largeur et 50 pixels de hauteur) qui glisse horizontalement d’un côté de l’écran à l’autre en boucle.
- Utilisez un SlideTransition pour gérer cette animation.
- 6. Animation liée aux gestes :
- Créez une image ou un conteneur coloré (par exemple, 150×150 pixels).
- Lorsque l’utilisateur effectue un geste de glissement (swipe), le conteneur doit changer de position ou de taille.
- Utilisez un GestureDetector combiné avec un AnimatedBuilder.
- Partie 3 : Animations Implicites
- 7. Animation avec AnimatedContainer :
- Créez un conteneur ayant une couleur, une taille, et une bordure qui changent simultanément lorsqu’un bouton est pressé.
- Utilisez AnimatedContainer pour gérer cette animation.
- 8. Animation de Transformation :
- Ajoutez un bouton qui fait pivoter un conteneur de 45° sur l’axe Z tout en augmentant sa taille.
- Utilisez un Transform ou AnimatedTransform.
- Partie 4 : Interface Utilisateur et Animation Combinée
- 9. Menu Animé (Drawer) :
- Implémentez un Drawer qui s’ouvre avec une animation personnalisée. Par exemple, le menu glisse de la gauche tout en changeant légèrement de taille.
- 10. Animation d’Arrière-Plan :
- Ajoutez un arrière-plan dynamique où une couleur change graduellement en boucle (par exemple, du bleu au violet en passant par le rose).
- Utilisez un TweenAnimationBuilder.
- Partie 5 : classe AppTheme
- Créez une classe AppTheme qui définit deux thèmes principaux :
- Thème clair (Light) : Utilisez une palette de couleurs lumineuses.
- Thème sombre (Dark) : Utilisez une palette de couleurs adaptées aux environnements peu éclairés.
- Ajoutez la logique pour permettre à l’utilisateur de basculer entre les deux thèmes à l’aide d’un Switch sur une page dédiée aux paramètres.
- Intégrez la classe AppTheme dans l’application pour que le thème sélectionné soit appliqué uniformément sur toutes les pages et les animations.
- Les pages doivent s’adapter dynamiquement au changement de thème sans nécessiter de redémarrage de l’application.
-
Critères de Durée
- Toutes les animations doivent avoir une durée entre 2 et 7 secondes selon leur complexité.
-
Interface Utilisateur
- Disposez les widgets de manière claire et intuitive.
- Assurez-vous que chaque animation est bien séparée et que les interactions sont explicites (par exemple, des boutons ou des gestes clairement identifiables).
-
Critères d’Évaluation
- 1. Fonctionnalité :
- Toutes les animations fonctionnent comme prévu.
- Les gestes et boutons déclenchent les animations correspondantes.
- 2. Qualité du Code :
- Utilisation correcte des outils d’animation en Flutter (comme AnimationController, Tween, Transition, etc.).
- Code structuré, lisible et commenté.
- 3. Interface et Expérience Utilisateur :
- Interface propre et bien organisée.
- Les animations améliorent l’expérience utilisateur sans surcharger l’interface.
- 4. Créativité :
- Ajout d’animations supplémentaires ou d’effets visuels (par exemple, transitions entre les écrans, sons, etc.).
- 5. La classe AppTheme :
- La classe AppTheme est bien définie et respecte les conventions de Flutter.
- Le changement de thème est fluide et n’entraîne pas de latence perceptible.
- Les animations et widgets respectent les couleurs définies dans le thème sélectionné.
- Les styles du thème incluent : la couleur principale, la couleur d’accent, les polices, et les arrière-plans.