persistance des données

Durée estimée: 45 minutes

Présentation

Nous allons compléter l'application "peinture" pour enregistrer la photo et pouvoir la récupérer la prochaine fois que nous utiliserons l'application.

Dans cette version de l'application Peinture, nous allons voir comment enregistrer une photo dans une base de données, ou plus exactement le nom du fichier dans lequel cette phooto est enregsitrée. Ca nous permettra de la retrouver la prochaine fois que nous utiliserons l'application.

La photo va devenir une donnée persistante, c'est à dire une information qui persiste entre une utilisation de l'application et la suivante. Nous allons utiliser un cmposant d'App Inventor qui s'appelle Tiny DB et qui permet de sauvegarder la référence des photos dans l'appareil.

Objectifs : Dans cette leçon nous allons :

  • créer une application qui sauvegarde les images entre les sessions;
  • apprendre la notion de données pesistantes;
  • apprendre à utiliser le composant simple d'App Inventor qui sert de base de données.

Introduction: Qu'est-ce que Tiny Db ?

Jusqu'à maintenant, les données de nos applications ont été stockées ou bien dans des variables globales ou bien comme la valeur des propriétés des composants de l'application. Par exemple, quand vous mettez du texte dans un label, cette donnée textuelle est stockée dans la mémoire centrale de l'ordinateur memory, dans sa mamoire vive ou RAM — random access memory. Et comme nous l'avons vu, la mamoire RAM est volatile, ce qui vet dire que les données de cette mémoire seront effacées quand on sort de l'application.

Par contre, les données stockées dans la mémoire à long terme de l'ordinateur — c'est à dire pour un smartphone dans le disque ou la mémoire flash — sera persistante aussi longtemps que l'on aura pas effacé de l'appareil, l'application elle même avec ses données. Il y a plusieurs manières de stocker des données de façon permanente ou persitante dans un ordinateur. Vous pouvez les stocker dans un fichier sous forme de doucment ou d'image. Vous pouvez aussi enregsitrer les données dans une base de données ou database. App Inventor propose une base de donénes très simple à utiliser avec le composant TinyDb. Les données stockées avec TinyDb, resteront présentes après la sortie de l'application et même si vous etéignez l'appareil.

Avant d'utiliser TinyDb, la vidéo qui suit en donne une vue d'ensemble.

 

Intégrer TinyDb à l'application Peinture

Vous pouvez aprtir de la version de l'application que vous avez réalisé dans les leçons précédentes, mais enregistrez votre projet sous un nouveau nom ou avec une nouvelle version pour pouvoir revenir à la version précédente en cas de problème.

Partie design

Dans la partie design :

  • Depuis la catégorie "stockage" ajoutez un composant "tinyDB",
  • Depuis la catégorie "Interface utilisateur" ajoutez un "bouton" boutonSave que vous pouvez placer dans un des arrangements horizontaux. Vous pouvez remplacer le stextes apr des icones libres de droits à rechercher sur internet.

Partie programme :

deux choses à faire :

  • Programmer l'enregistrement du nom de fichier image quand on clique sur le bouton save,
  • Programmer la lecture de l'enregsitrement dans tinyDB qu démarrage de l'application, c'est à dire quand screen1.intialize

Nous utilisons le même tag our lire et écrire dans tinyDB

  • Enregistrement du nom de fichier blocsPartager.png
  • Lecture du nom de fichier.
    Si le tag n'est aps trouvé (aucun enregsitement antérieur) on renvie un texte vide.
    Si la valeur renoyée n'est pas vide, on affecte le fichier en fond de cadre. blocsPartager.png

Solutions

A faire en cours

Auto-contrôle

Not yet started
1 point
La lou lesquelles de ces affirmations sont vraies sur le composant TinyDB ?
(Cochez toutes les affirmations valides.)
Not yet started
1 point
Quelle sera la valeur de la variable globale userName après l'exécution des blocs suivants ?
Tapez votre réponse dans la boite à texte. L'orthographe compte.



Not yet started
1 point
Quelle sera la valeur de la variable globale userName après l'exécution des blocs suivants ?
Tapez votre réponse dans la boite à texte. L'orthographe compte.
Not yet started
1 point
Dans le bloc ci-dessous, pourquoi est il nécessaire de tester si le highestScore est égal à empty string ?

Not yet started
1 point
Le contenu d'une TinyDb d'application est le suivant :
TagsValues
schoolTrinity College
trinityTrinity College
collegeAmherst College
universityHarvard
Supposez que votre application exécute le bloc suivant :
Laquelle de ces affirmations décrit ensuite le mieux l'état de la base de données ?
 

Pour votre Portfolio

Créez une page nommée : Tutoriel sur la persistance des Photos dans la catégorie "réflexions" de votre portfolio, puis répondez brièvement aux questions suivantes :

  1. Que veut on dire par 'persistantes'?
  2. Quelles sont les différences entre une variable globale et des données d'une base de données pour ce qui concerne l'endroit où sont stockées les données.
  3. Quand et combien de fois App Inventor exécute t-il les blocs Screen1.Initialise et quel est l'intérêt de cet évènement ?