Flutter Avancé

Informations :

Lieu : distanciel
Prérequis apprenants :
/
Public ciblé :
Développeurs mobile expérimentés (10+ ans) débutant en Flutter
Informations sur les stagiaires/apprenants :
7 participants

Les dates :

3 jours selon vos dispos (fin mai si possible)

Le programme :

Les indications ci-dessous représentent les attentes de notre client pour cette formation.
Vous devez être en mesure de traiter les chapitres de ce programme.
Vous serez libre d'adapter le contenu précis de chaque chapitre ainsi que l'ordre dans lequel vous les traiterez selon votre approche et votre expérience.

Focus : Architecture & patterns spécifiques à Flutter 

Jour 1 : Fondations Flutter & Architecture

 
Matin (9h-12h30) 
- Dart moderne pour développeurs expérimentés (45min)
- Extensions, mixins, sealed classes - Null-safety & pattern matching
- Async/await, Streams, Future vs Stream
- fpdart : programmation fonctionnelle (Either, Option, TaskEither)
- Widget Tree & Lifecycle (1h30)
- StatelessWidget vs StatefulWidget (quand utiliser quoi)
- BuildContext : comprendre l'arbre de widgets
- Lifecycle hooks (initState, dispose, didUpdateWidget...)
- InheritedWidget : les fondations de la DI 
 TP1 : Créer un widget custom réutilisable (1h)

Après-midi (14h-18h)
- Architecture Feature-based (1h30)
- Separation of concerns : models, services, repositories, providers, pages
- Clean Architecture appliquée à Flutter
- Error handling patterns (Either<Exception, Success>)
- Dependency injection avec Riverpod
- Navigation & Routing (1h)
- Navigator 1.0 vs 2.0
- Routes nommées vs programmatiques
- Passage de paramètres
- Deep linking basics
TP2 : Structurer une feature complète (1h30)  
- CRUD simple avec navigation, repository, error handling 

Jour 2 : State Management avec Riverpod  

Matin (9h-12h30)  
- Riverpod en profondeur (2h)  
- Provider vs StateProvider vs StateNotifierProvider vs FutureProvider  
- Ref.watch vs ref.read vs ref.listen  
- ProviderScope & overrides (pour les tests)  
- Family & AutoDispose  
- Dependency injection avancée
TP3 : Refactoriser un écran avec Riverpod (1h30)  
- Gestion d'état complexe avec plusieurs providers interdépendants  

Après-midi (14h-18h)  
- AsyncValue & gestion des états asynchrones (1h)  
- Loading, data, error patterns  
- Refresh & invalidation  
- Cache strategies
- State patterns avancés (1h30)  
- Optimistic updates  
- Pagination  
- Multi-selection
 - Undo/Redo patterns
TP4 : Liste avec pagination et refresh (1h30)

 Jour 3 : Patterns Avancés & Production

 Matin (9h-12h30)  
- Testing stratégies (1h30)  
- Unit tests (services, repositories)  
- Widget tests avec ProviderScope
- Mocks avec Mockito & build_runner 
- Integration tests -  
TP5 : Tester une feature complète (1h)
- Navigation avancée (1h)  
- Nested navigation  
- Navigation guards  
- Dialog & bottom sheets patterns  
- Transitions personnalisées

Après-midi (14h-18h)
- Performance & optimisation (1h30)
- Widget rebuilds : const constructors, keys
- DevTools & profiling
- ListView.builder vs CustomScrollView
- Image caching & lazy loading
- Production-ready patterns (1h)
- Multi-environnements (dev/staging/prod)
- Feature flags & flavors
- Logging & monitoring
- Secure storage & secrets management     
TP6 : Optimiser un écran complexe (1h)
- Q&A & Best practices (30min) 

Créez un compte pour :
Nous indiquer votre intérêt pour la mission
Être contacté directement lorsque votre CV match avec une mission
Recevoir une fois par semaine nos besoins en formation Je créé mon compte
Réception des profils formateurs

Nous sommes en recherche de la bonne personne pour cette formation.

En attente confirmation de notre client

Nous avons proposé votre profil et attendons la réponse de notre client.

En attente de votre signature sur notre demande d'intervention

Vous avez reçu notre demande d'intervention pour une signature numérique.

La mission est confirmée !

Préparez vos supports et soyez prêt à donner une super formation :)

La formation est terminée.

Envoyez votre facture à vincent@eluv.fr; nous reviendrons vers vous dès que nous aurons recueilli les retours des apprenants.