Skip to content
Snippets Groups Projects
Commit 88af1828 authored by Adrien BONNIN's avatar Adrien BONNIN
Browse files

:recycle: Déplacement du 1er article dans un fichier indépendant

parent bbf958ca
No related branches found
No related tags found
No related merge requests found
......@@ -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éclaration d'un Provider](docs/images/declaration_provider.png)
![Déclaration d'un Provider](images/declaration_provider.png)
> Déclarer un provider permet de __typer__, __initialiser__ et __récupérer__ un état.
......@@ -68,7 +68,7 @@ void main() {
}
```
![provider](docs/images/provider.png)
![provider](images/provider.png)
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() {
}
```
![Circle of life](docs/images/circle_of_life.png)
![Circle of life](images/circle_of_life.png)
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() {
}
```
![Provider](docs/images/autodispose.png)
![Provider](images/autodispose.png)
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() {
}
```
![Provider](docs/images/test_overrides.png)
![Provider](images/test_overrides.png)
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() {
}
```
![.family](docs/images/family.png)
![.family](images/family.png)
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() {
}
```
![StateProvider](docs/images/state_provider.png)
![StateProvider](images/state_provider.png)
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() {
}
```
![watch modifier](docs/images/watch.png)
![watch modifier](images/watch.png)
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() {
}
```
![listener](docs/images/listener.png)
![listener](images/listener.png)
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() {
}
```
![select](docs/images/select.png)
![select](images/select.png)
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() {
}
```
![state_notifier_provider](docs/images/state_notifier_provider.png)
![state_notifier_provider](images/state_notifier_provider.png)
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() {
}
```
![change_notifier_provider](docs/images/change_notifier_provider.png)
![change_notifier_provider](images/change_notifier_provider.png)
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() {
}
```
![future_provider](docs/images/future_provider.png)
![future_provider](images/future_provider.png)
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() {
}
```
![stream_provider](docs/images/stream_provider.png)
![stream_provider](images/stream_provider.png)
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.
![zelda_sword](docs/images/zelda_sword.png)
![zelda_sword](images/zelda_sword.png)
[^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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment