# Débloquer du contenu progressivement

> Apprenez à utiliser des variables locales et des conditions dans PandaSuite pour déverrouiller des écrans selon la progression de l'utilisateur, sauvegarder la progression, mémoriser l'état entre les sessions, et exécuter une action uniquement à la première utilisation.

https://docs.pandasuite.com/fr/essentials/gamification/unlock-content-progressively/

**Utilisez des variables locales et des conditions pour restreindre l'accès à certains écrans selon ce que l'utilisateur a déjà accompli, ou pour exécuter une action uniquement à la première ouverture de l'application.**

## Déverrouiller un écran ou une étape

Cette technique est utile pour les **expériences non linéaires** (jeux, récits interactifs, visites libres) où l'utilisateur peut naviguer entre les écrans dans n'importe quel ordre et où vous souhaitez restreindre l'accès à certains contenus tant qu'il n'a pas accompli quelque chose ailleurs.

Dans un parcours strictement linéaire, ce n'est pas nécessaire : la navigation séquentielle suffit à empêcher l'utilisateur de passer les étapes.

**Étape 1 : Créer une variable**

Ajoutez une [Datastore](https://docs.pandasuite.com/fr/essentials/data/datastore/) et créez une propriété Booléen (par ex. `etape_1_faite`). Laissez la valeur par défaut vide.

**Étape 2 : La passer à vrai à la fin de l'étape**

Sur le déclencheur qui marque l'étape comme accomplie (appui sur un bouton, fin d'une vidéo, etc.), ajoutez l'action **Agir sur une source de données > Datastore > Créer/Modifier une donnée (Local)**. Choisissez `etape_1_faite`, fonction **Définir**, valeur `true`.

**Étape 3 : Créer une condition**

Ajoutez un composant [Condition](https://docs.pandasuite.com/fr/essentials/components/condition/). Créez une condition : `etape_1_faite` **Égal à** `true`, avec l'**Évaluation automatique** activée.

**Étape 4 : Lier la visibilité**

Sélectionnez le bouton ou l'élément qui mène à l'écran verrouillé. Liez sa propriété **Visibilité** au résultat de la condition. L'élément reste masqué jusqu'à ce que la condition soit remplie.

## Exécuter une action uniquement à la première utilisation

À utiliser pour afficher un écran de bienvenue ou un overlay d'onboarding qui ne doit jamais se répéter.

**Étape 1 : Créer une variable**

Ajoutez une [Datastore](https://docs.pandasuite.com/fr/essentials/data/datastore/) et créez une propriété Booléen (par ex. `bienvenue_affiche`). **Ne définissez pas de valeur par défaut** :c'est ce qui permet de distinguer "jamais ouvert" de "déjà vu".

**Étape 2 : Créer une condition**

Ajoutez un composant [Condition](https://docs.pandasuite.com/fr/essentials/components/condition/). Créez une condition : `bienvenue_affiche` **Inconnu ou vide**.

**Étape 3 : Évaluer à l'affichage de l'écran**

Sélectionnez l'écran (sans sélectionner d'objet). Dans le panneau **Actions**, ajoutez un déclencheur **Affichage de l'écran**. Action : **Agir sur un composant > Conditions > Évaluer la condition : bienvenue affiche**.

**Étape 4 : Réagir et marquer comme vu**

Sur le composant Condition, pour le déclencheur **Évaluation : bienvenue affiche**, ajoutez deux actions :

1. Afficher votre overlay (ouvrir une pop-up, changer un état, etc.)
2. Définir `bienvenue_affiche` à `true`

Dès la deuxième visite, la condition est fausse et l'overlay est ignoré.

> **Info**
>
> La variable est stockée localement sur l'appareil. Pour une persistance
> multi-appareils, utilisez plutôt une variable [Firebase
> Session](https://docs.pandasuite.com/fr/essentials/components/firebase-session/).

## Articles connexes

- [Variables](https://docs.pandasuite.com/fr/essentials/data/variables/)
- [Condition](https://docs.pandasuite.com/fr/essentials/components/condition/)
- [Déclencher automatiquement des actions](https://docs.pandasuite.com/fr/essentials/interactions/automatically-trigger-actions/)
- [Visibilité des objets](https://docs.pandasuite.com/fr/essentials/layout/object-visibility/)
