Discussion générale Tombstone : Mettons une pierre ci-dessus - Partie 1: La théorie

  • mercredi 13 octobre 2010 14:20
    Modérateur
     
     

    C’est quoi le « Tombstone » ?

    Dans la dernière version de l'outil le concept de l'objet « tombstone » (désactivé) a été introduit,  ou comment gérer l'état de l'application dans WP7. 

     

    Le « tombstone » est un domaine où le développeur peut introduire des données à conserver si vous quittez votre application en appuyant sur le bouton Démarrer, ou si un événement particulier a été déclenché (lancer un sélecteur, répondre à un appel téléphonique, etc..).

     

    Ce domaine est géré comme une pile : si c'est complète (parce que plusieurs applications ont été ouverts, par exemple) les objets désactivés le plus anciens sont progressivement mis au rebut.

     

    Dans ce poste, nous nous concentrerons sur certains aspects théoriques pour comprendre ce concept.

     

     

    La pierre tombale n'est pas une garantie

    C'est le premier aspect fondamental à garder à l'esprit : si nous stockons un objet désactivé, nous n'avons aucune garantie que l'application peut récupérer. C'est parce que, naturellement, si l'utilisateur décide de rouvrir l’application de zéro, l’objet désactivé que nous avions enregistré serait automatiquement supprimé.

     

    La désactivation n'est pas seulement pour le multitâche

    La désactivation est utile parce que d'une certaine façon tente de dépasser les limites de l'absence de multitâche : le scenario d’utilisation, cependant, n’est pas uniquement dans le passage d'une application à l'autre, mais aussi d'une page (ou d'un affichage) à l'autre de la même application. Le concept est différent (le « tombstone » lui-même se réfère uniquement aux données enregistrées à la suspension de l'application), mais les outils utilisés sont les mêmes. Lorsque nous nous déplaçons vers une autre page (ou reprenons une page précédente) elle est instancié à partir de zéro : le résultat est que si nous insérons du texte dans une zone de texte, revenons à la page précédente et puis nous retournons à la page avec la zone de texte, cela sera vide. Des outils sont mis à notre disposition pour gérer la désactivation, qu’on a besoin d’utiliser même si on  veut conserver les informations au sein de l'application elle-même pendant les « mouvements ».

     

     

    Données persistantes vs données transitoires

    Le concept de « désactivation » devrait être utilisé par nos applications uniquement pour enregistrer des données temporaires.

     

    Expliquons mieux le concept avec un exemple : nous avons une application qui permet de gérer une collection de livres et, grâce à un formulaire, nous avons la possibilité d'ajouter un livre, ainsi que des informations connexes (titre, auteur, éditeur, etc..).

     

    L'utilisateur saisit cette information et appuie sur le bouton « Enregistrer »: dans ce cas, l'utilisateur, avant la sortie de l'application pourrait faire mille choses, mais attend que lorsqu’il revient le livre existe dans la collection : si, par exemple, nous enregistrons le livre dans un objet temporaire, puis nous attendons la sortie de l'application pour l'enregistrer dans le stockage isolé, nous courons le risque de perdre toute cette information. Nous enregistrons donc la collection actualisée immédiatement.

     

    Si l'utilisateur est en train de remplir le formulaire, mais n'a pas encore appuyé « Enregistrer » et quelques événements se produisent qui provoquent la sortie de l'application (appel téléphonique, par exemple), enregistrer le contenu des différents champs du formulaire dans un objet temporaire est justifié. C'est parce que l'utilisateur attend, quand il finit l'appel, de retrouver le formulaire exactement comme il avait quitté : toutefois, n’espérez pas que s’il sort et puis revient le lendemain après 1000 autres choses, le formulaire sera toujours exactement le même.

     

     

    Qu’est-ce que nous offre Windows Phone 7 ?

    Windows Phone 7 gère indépendamment les pages de la pile : cela signifie que lorsqu’on se déplace vers une autre application, et ensuite on appuie sur la touche « Arrière », on reviendra exactement à la page que nous avons quitté. Quelle est la responsabilité du développeur est le suivi de tout le reste : dans l'exemple ci-dessus, on veut que Windows Phone 7 vous offre directement le formulaire d'insertion d'un nouveau livre. Toutefois, c’est notre responsabilité pour enregistrer toutes les données saisies dans des formulaires, afin de les récupérer plus tard.

     

     

    Deuxième partie : Tombstone : Mettons une pierre ci-dessus - Partie 2: gérer l'état d'une application