# Variables

> Découvrez tout ce que vous devez savoir sur les variables dans les applications PandaSuite, y compris leur création, modification, et affichage pour une personnalisation avancée et des scénarios logiques.

https://docs.pandasuite.com/fr/essentials/data/variables/

**Une variable est un mécanisme qui vous permet de stocker, de modifier et de réutiliser une valeur définie par l'utilisateur ou pour l'application (un nombre, un texte etc.). Cette valeur affecte l'interface utilisateur d'une manière ou d'une autre à un moment donné.**

Voici quelques cas d'usages : stocker et afficher le score de l'utilisateur, savoir si l'utilisateur a déjà ouvert ou non l'application, stocker un code couleur, sauvegarder une sélection de l'utilisateur...

Les variables permettent d'ajouter plus de personnalisation dans votre application et de mettre en place des scénarios logiques avec les [conditions](https://docs.pandasuite.com/fr/essentials/components/condition/).

## Qu'est-ce qu'une variable ?

Une variable associe un nom à une valeur qui peut évoluer.

Choisissez le nom de la variable : celui-ci doit être unique, composé de caractères alphanumériques et il doit permettre de comprendre son usage de manière explicite. Par exemple : *score* pour stocker le score de l'utilisateur ou *selected\_item* pour sauvegarder l'identifiant d'un élément sélectionné par l'utilisateur.

Une fois que votre variable est créée, vous pouvez lui associer une valeur par défaut, modifier sa valeur depuis n'importe quel déclencheur et l'afficher dans l'interface.

Lorsque vous créez une variable via le [Datastore](https://docs.pandasuite.com/fr/essentials/data/datastore/), cette variable est locale : elle est stockée seulement sur l'appareil de l'utilisateur. Celle-ci est persistante même après la fermeture de l'application. Par contre, il n'est pas possible d'y accéder si l'utilisateur utilise un autre appareil ou de connaître sa valeur en dehors de l'application.

> **Attention**
>
> La valeur d'une variable locale est réinitialisée à sa valeur par défaut à
> chaque nouvelle publication de l'application.

> **Info**
>
> Vous pouvez également créer une [variable associée à un utilisateur](https://docs.pandasuite.com/fr/essentials/integrations/save-user-data-in-firebase/) grâce au composant [Session Firebase](https://docs.pandasuite.com/fr/essentials/components/firebase-session/). Dans ce cas, il est possible de consulter la valeur de cette variable et/ou de la modifier depuis l'interface de Firebase. Si l'utilisateur utilise un autre appareil, son compte reste associé à cette variable.

## Créer une variable

Pour créer une variable :

1. Ajoutez un [Datastore](https://docs.pandasuite.com/fr/essentials/data/datastore/) au niveau **Projet** afin que la variable reste disponible dans toute l'application.
2. Cliquez sur le bouton **Ajouter une propriété**.
3. Choisissez le nom de votre variable et son type. Vous pouvez définir une valeur par défaut.

[Image : Datastore : le bouton Ajouter une propriété ouvre la liste des types de la nouvelle variable (Array, Audio, Booléen, Couleur…)]

### Types de variables

| Type        | Description                               | Exemple d'usage                    |
| ----------- | ----------------------------------------- | ---------------------------------- |
| **Booléen** | Valeur vraie ou fausse (`true` / `false`) | Menu ouvert/fermé, favori activé   |
| **Nombre**  | Valeur numérique entière ou décimale      | Score, compteur, âge               |
| **Texte**   | Chaîne de caractères                      | Nom d'utilisateur, réponse saisie  |
| **Couleur** | Code couleur hexadécimal                  | Thème dynamique, fond personnalisé |
| **Tableau** | Liste de valeurs                          | Sélections multiples, favoris      |

## Modifier la valeur d'une variable

Vous pouvez modifier la valeur d'une variable à tout moment et depuis n'importe quelle action de votre interface utilisateur : à l'affichage d'un écran, au clic sur un bouton etc.

Sélectionnez votre déclencheur et l'action **Agir sur une source de données**. Sélectionnez votre **Datastore** et l'action **Créer/Modifier une donnée (Local)**.

Choisissez parmi les [fonctions](https://docs.pandasuite.com/fr/essentials/data/functions/) possibles : **Définir**, **Incrémenter**, **Décrémenter**, **Ajouter**, **Supprimer**.

Dans l'exemple ci-dessous, le cœur de la fiche d'un lieu ajoute le lieu sélectionné à la variable *favorites* (pour la [mise en favoris](https://docs.pandasuite.com/fr/essentials/data/bookmark-favorite/)).

[Vidéo : sur le cœur de la fiche, Créer/Modifier une donnée (local) avec la fonction Ajouter sur favorites, et le lieu sélectionné comme valeur]

## Afficher la valeur d'une variable

Grâce au [data binding](https://docs.pandasuite.com/fr/essentials/data/data-binding/), vous pouvez afficher la valeur de votre variable dans n'importe quel composant qui accepte une source de données (texte, image, couleur...).

Pour afficher une variable dans un bloc de texte :

1. Insérez un bloc **Texte**.
2. Dans le panneau **Propriétés**, cliquez sur **Source**.
3. Choisissez **Depuis le Datastore** et sélectionnez votre variable.

> **Info**
>
> Découvrez un cas concret d'utilisation d'une variable : [Score](https://docs.pandasuite.com/fr/essentials/gamification/score/)

## Réinitialiser une variable

Pour remettre une variable à sa valeur par défaut (par exemple au démarrage d'un quiz), utilisez la fonction **Définir** avec la valeur souhaitée.

Sélectionnez votre déclencheur, puis l'action **Agir sur une source de données** → **Datastore** → **Créer/Modifier une donnée (Local)**. Choisissez la fonction **Définir** et entrez la valeur de réinitialisation (par exemple `0` pour un score).

> **Astuce**
>
> Placez cette action sur le déclencheur **Affichage de l'écran** du premier
> écran de votre activité pour garantir un état propre à chaque nouvelle
> session.
