diff --git a/README.md b/docs/01_decouverte_des_bases.md similarity index 97% rename from README.md rename to docs/01_decouverte_des_bases.md index 248d683941f9c11fd839dd1bf6ed731ada0916dc..2567bb16bb9673768061b2c3b1cab5d617eade6a 100644 --- a/README.md +++ b/docs/01_decouverte_des_bases.md @@ -43,7 +43,7 @@ Utiliser des instances comme clef corrige la limitation de la bibliothèque Prov Le `Provider` est un moyen de __récupérer__ un état présent dans un `ProviderContainer`. La déclaration d'un provider permet d'indiquer __le type__ et __la valeur d'initialisation__ de l'état auquel il correspond. - + > Déclarer un provider permet de __typer__, __initialiser__ et __récupérer__ un état. @@ -68,7 +68,7 @@ void main() { } ``` - + Le `Provider` est instancié en tant que variable globale et son état est initialisé avec la valeur 13 `<1>`. L'instance du `ProviderContainer` contient les états `<2>` et permet de les récupérer en passant l'instance du `Provider` en paramètre de sa méthode `read` `<3>`. @@ -129,7 +129,7 @@ void main() { } ``` - + Le `Provider` est déclaré au sein du test pour retenir son affectation d'état et sa libération de ressources `<1>`. Avant toute manipulation, sa valeur n'est toujours pas affectée `<2>`. @@ -170,7 +170,7 @@ void main() { } ``` - + Le `Provider` est déclaré pour que ses ressources soient libérées dès qu'il n'est plus utilisé `<1>`. Après avoir été lu `<2>` ses ressources ne sont pas instantanément libérées `<3>`. @@ -231,7 +231,7 @@ void main() { } ``` - + Deux `Providers` sont déclarés pour retourner la valeur 13 `<1>`. Le comportement du `ProviderContainer` est surchargé pour remplacer le premier `Provider` et pour remplacer la valeur retournée par le second `<2>`. @@ -257,7 +257,7 @@ void main() { } ``` - + Un `Provider` est déclaré pour indiquer par ses états si la clef passée en paramètre est paire `<1>`. La lecture du `Provider` se fait en passant cette clef et la valeur correspondante est retournée `<2>`. @@ -292,7 +292,7 @@ void main() { } ``` - + Le `StateProvider` est instancié de la même manière qu'un `Provider`, en initialisant son état avec la valeur 13 `<1>`. Le notifier du `StateProvider` est récupéré par l'intermédiaire du `ProviderContainer` et son état est remplacé par la valeur 42 `<2>`. @@ -339,7 +339,7 @@ void main() { } ``` - + Le `StateProvider` `intProvider` est initialisé avec la valeur 13, `readProvider` vient lire son état et `watchProvider` le surveiller `<1>`. Lors de leurs premières lectures, l'état des `readProvider` et `watchProvider` sont identiques à celui du `intProvider` `<2>`. @@ -434,7 +434,7 @@ void main() { } ``` - + Le `StateProvider` `intProvider` est initialisé avec la valeur 13 et `watchProvider` surveille ses modifications `<1>`. Des listeners écoutent leurs changements d'état respectif pour stocker les nouvelles valeurs `<2>`. @@ -495,7 +495,7 @@ void main() { } ``` - + Le `StateProvider` `intProvider` est initialisé avec la valeur 13 et le `moduloProvider` vient l'écouter en sélectionnant uniquement le modulo de 10 de l'état `<1>`. Un compteur écoute le nombre de changements réalisés par `moduloProvider` `<2>`. @@ -572,7 +572,7 @@ void main() { } ``` - + Le `StateProvider` `intProvider` est initialisé avec la valeur 13 `<1>`. Il est écouté par le `StateNotifierProvider` `incrementProvider` dont le notifier `IncrementNotifier` dispose d'une méthode pour incrémenter son état `<2>`. @@ -648,7 +648,7 @@ void main() { } ``` - + La classe `IncrementNotifier`, un `ChangeNotifier` avec une méthode `increment` pour incrémenter sa propriété `number`, est initialisé avec la valeur 13 `<1>`. La propriété `number` de son `notifier` dispose bien de la valeur 13. @@ -695,7 +695,7 @@ void main() { } ``` - + Un `FutureProvider` est instancié pour que son état prenne la valeur 13 après 100ms `<1>`. Tant que le `Futur` n'a pas été résolu, aucune valeur n'est attribuée à l'état et il conserve la valeur `AsyncLoading` `<2>`. @@ -742,7 +742,7 @@ void main() { } ``` - + Une `Stream` est déclarée pour retourner la valeur 13 suivie d'une erreur, le tout entrecoupé par un délai de 100 millisecondes `<1>`. Tant que la première valeur de la `Stream` n'est pas retournée, l'état conserve la valeur `AsyncLoading` `<2>`. @@ -756,6 +756,6 @@ Vous disposez maintenant des bases pour en comprendre les principaux mécanismes Le prochain article sera plus court et portera sur son intégration avec Flutter. - + [^1]: Les interfaces n'existent pas à proprement parler en Dart, ce sont des classes abstraites avec des méthodes abstraites dont l'interface implicite est implémentée. \ No newline at end of file