Partage à partir de votre application

Blog des développeurs d'applications Windows 8

Indications sur la conception d'applications de style Metro pour Windows 8, par l'équipe d'ingénierie de Windows 8

Partage à partir de votre application

  • Comments 0

Dans Windows 8, le partage est omniprésent et fait partie intégrante des attentes naturelles des utilisateurs. Il arrive souvent aux utilisateurs de rencontrer dans votre application des éléments qu'ils souhaitent partager avec leurs amis ou utiliser dans une autre application. En tant que développeur, vous pouvez répondre à cette attente des utilisateurs en utilisant le contrat de partage qui offre un modèle léger, contextuel et simple pour réaliser le partage entre applications.

Vous connaissez peut-être l'application « Food with friends », qui a été présentée dans le billet Création d'applications de style Metro qui sortent du lot. En prenant l'application « Food with Friends » comme exemple, nous avons expliqué dans ce billet comment une application pouvait constituer une formidable source de partage. Nous allons faire référence aux vues, à la hiérarchie et à la formulation « des principaux avantages » de l'application pour nous guider dans les décisions conceptuelles et techniques sous-jacentes à la création d'une source de partage optimale.

Vues et hiérarchie de « Food with Friends »

Vues et hiérarchie de « Food with Friends »

Qu'est-ce que le partage et pourquoi est-ce important ?

Comme indiqué dans le billet Affichage de l'interface utilisateur à la demande, les icônes constituent un lieu pratique de centralisation des points d'entrée vers des actions omniprésentes, telles que la recherche, le partage, la connexion aux périphériques et la configuration des paramètres entre les applications et avec Windows même. Les contrats permettent de tirer pleinement parti de ces points d'entrée d'accès rapide afin de mettre en avant le contenu dans votre application. Le partage constitue l'un de ces contrats. Son objectif est de permettre aux utilisateurs d'aller plus loin avec votre contenu en le partageant avec d'autres applications.

Un système de partage complet dans Windows se compose de deux éléments. Il est d'abord composé d'une application source qui rend son contenu disponible dans différents formats. Vient ensuite une application cible qui reconnaît certains formats et sert de destination au contenu partagé. Windows crée un canal de communication entre l'application source et l'application cible via le contrat de partage. Lorsque votre application joue le rôle de source de partage, les utilisateurs peuvent s'appuyer en toute confiance sur l'icône Partager pour trouver la liste des applications, amis et autres lieux susceptibles d'utiliser le contenu de votre application dans le volet Partager. Voici un exemple.

Volet Partager présentant une liste d'applications cibles susceptibles de recevoir la page Web partagée depuis l'application source ; Internet Explorer dans ce cas.

Volet Partager présentant une liste d'applications cibles susceptibles de recevoir la page
Web partagée depuis l'application source ; Internet Explorer dans ce cas.

Le partage entre applications via le contrat de partage représente une formidable opportunité sous plusieurs aspects.

Tout d'abord, il bénéficie d'un écosystème d'applications varié. En analysant les catégories d'applications présentes dans le Windows Store, vous pouvez déjà commencer à déterminer en quoi les atouts d'une application consacrée aux restaurants sont différents des atouts d'une application portant sur la productivité ou d'une application sociale, etc. Même au sein de ces catégories, les applications se distinguent entre elles d'une manière plus profonde encore. Votre application peut tirer parti des principaux avantages de ces autres applications en partageant du contenu avec ces applications, ce qui optimise davantage encore l'expérience utilisateur.

Ensuite, un point d'entrée prévisible destiné au partage dans le système d'exploitation signifie que vous n'avez plus besoin de consacrer aux widgets de partage une partie précieuse de l'écran au sein de l'interface utilisateur de votre application. En plus, ceci est plus simple pour les utilisateurs, qui n'ont pas besoin de se demander où se trouvent ces points d'entrée dans chaque application. Être en mesure de partager depuis votre application sans avoir à accéder à une autre application est formidable du point de vue de l'utilisateur, car cela lui permet de rester concentré. En outre, l'utilisateur demeure ainsi immergé dans l'expérience de votre application.

Enfin, en participant au contrat de partage, votre application reste en permanence pertinente et connectée à un écosystème d'applications en constante évolution. De plus, il n'est pas nécessaire d'apprendre ou d'intégrer chaque API individuelle ou nouvelle tierce, car le contrat de partage crée un langage commun qui permet d'échanger des données entre applications sources et cibles.

Personnalisation de la source de partage

Le système de partage de Windows 8 permet à votre application de personnaliser le contenu qui est partagé depuis votre application en fonction de la vue de l'application avec laquelle l'utilisateur interagit. Ceci permet de répondre aux attentes de l'utilisateur concernant le contenu partagé à partir d'une vue d'application donnée. Par exemple, dans l'application « Food with Friends », le contenu de la page d'arrivée est différent de celui de la section [My Wishlist] (Ma liste de préférences) ou de la vue [Détails du restaurant] (Restaurant Details). Un utilisateur attend par conséquent de l'application et du système qu'ils envoient et reçoivent le contenu qui est pertinent dans la vue en cours. La personnalisation ne signifie pas que vous deviez penser à chaque application qui est une cible potentielle de réception du contenu, mais cela implique de fournir plusieurs représentations du contenu partagé depuis votre application afin de l'adapter à différents scénarios de partage entre applications.

Dans les prochaines sections, nous nous penchons sur la configuration de votre application en tant que source de partage et sur la création d'une expérience adaptée et d'un package de données personnalisé pour différentes vues de l'application.

  1. Partager le programme de la soirée à partir de la page d'arrivée
  2. Partager les états d'erreurs utiles à partir de vues qui n'ont pas de contenu à partager
  3. Partager les sélections utilisateur à partir de Ma liste de préférences

Commençons.

Implémentation d'une source de partage

Dans Windows 8, vous pouvez utiliser les API de partage pour permettre à votre application de partager du contenu avec d'autres applications. Vous devez d'abord choisir les formats de données et les types de données à implémenter. Avec le partage, vous pouvez empaqueter les données dans des formats de données standard (texte, URI, HTML, images bitmap et fichiers) et dans les formats de données personnalisés spécifiés dans http://schema.org. Au cours des prochaines sections, nous allons expliquer pourquoi et comment « Food with Friends » doit prendre en charge ces formats.

Une fois que vous avez choisi les formats de données à proposer, utilisez les classes de l'espace de noms Windows.ApplicationModel.DataTransfer pour empaqueter les données. La classe DataPackage constitue l'unité fondamentale d'échange de données par le biais du contrat de partage.

Lorsque l'utilisateur affiche les icônes et sélectionne Partager, votre application reçoit un événement datarequested. Votre application peut écouter l'événement datarequested et créer un package de données qui peut être envoyé à l'application cible. Consultez ce guide de démarrage rapide pour savoir comment configurer votre application pour qu'elle écoute et réponde à cet événement.

Partager le programme de la soirée

Voici une vue représentant les principaux avantages de cette application, la page d'arrivée dans laquelle vous avez formulé le programme de la soirée.

Page d'arrivée présentant le programme de la soirée dans « Food with Friends »

Page d'arrivée présentant le programme de la soirée dans « Food with Friends »

« Food with Friends » a adapté la conception de la page d'arrivée pour mettre en avant le contenu et minimiser les distractions. Comme indiqué dans le billet Création d'applications de style Metro qui sortent du lot, ce contenu ne laisse planer aucune ambiguïté sur le principal atout de l'application. Tout comme la conception de la page aide l'utilisateur à comprendre l'objectif de l'application, elle rend également évident que le contenu à partager sur cette page est le programme de la soirée. Ainsi, l'utilisateur peut naturellement s'attendre à ce que le contenu de la section Ce soir soit partagé à partir de l'application source et reçu par l'application cible via Partager. Comprendre cette attente de la part de l'utilisateur est important pour le développeur de l'application source, car cela l'aide à créer un package de données qui répond à cette attente de l'utilisateur et à cette volonté de partage. Nous allons maintenant utiliser la conception de la page d'arrivée pour nous aider à créer un système de partage intuitif à l'aide du contenu de la section [Tonight] (Ce soir).

Scénarios

Énumérons certaines des façons dont l'utilisateur peut avoir envie de partager du contenu à partir de la section [Tonight] (Ce soir) de « Food with Friends » avec d'autres applications.

  1. Partager le programme de la soirée avec une application de réseau social. L'avantage principal d'une application de réseau social est qu'elle permet à un utilisateur de rester en contact avec un grand nombre d'amis ou de personnes qui le suivent. Grâce au partage entre applications, l'utilisateur peut partager du contenu depuis « Food with Friends » avec son réseau et le personnaliser avec une notification, un tweet ou un message (« Je recommande vivement Southwestern Seafood, un super restaurant pour ce soir ! »)
  2. Partager le programme de la soirée avec une application de calendrier. L'avantage principal d'une application de calendrier est qu'elle permet à l'utilisateur d'organiser son temps et lui rappelle les rendez-vous à venir. L'utilisateur peut partager son programme pour la soirée depuis « Food with Friends » vers son application de calendrier et recevoir un rappel de l'application de calendrier qui lui permet d'arriver à l'heure au restaurant. Ainsi, l'application source et l'application cible remplissent à elles deux un scénario d'utilisation complet.

Comme vous pouvez l'imaginer, cette liste n'est pas exhaustive. Ce n'est que le début d'une longue liste de scénarios de partage entre applications. Un des avantages de l'utilisation de la plateforme Partager dans Windows est que vous n'avez pas besoin d'anticiper chaque scénario de partage entre applications. Mais la liste est utile, car elle vous aide, en tant que développeur de l'application source, à identifier et à privilégier les formats de données de partage depuis votre application afin de répondre à vos scénarios d'utilisation préférés. Regardons maintenant comment créer un package de données à l'aide des formats standard et personnalisés.

Création d'un package de données

Quels types de données prendre en charge ?

Vous devez choisir les formats de données que vous allez proposer dans le package de données. Pour que le partage réussisse, l'application cible doit reconnaître le format de données pris en charge par votre application.

Les types de données standard sont fréquemment utilisés et reconnus dans un grand nombre d'applications cibles. Par exemple, de nombreuses applications proposent des informations via du texte et les utilisateurs doivent être capables de partager ce texte avec d'autres applications. Les cibles, telles que les applications de prise de notes ou les applications de messagerie électronique, peuvent recevoir du texte partagé depuis votre application pour mener à bien les scénarios d'utilisation. Vous pouvez également spécifier des formats de données personnalisés pour certains scénarios d'utilisation. Choix des formats de données décrit ces formats de façon plus détaillée. Nous expliquons comment créer un package de données à l'aide des formats de données standard et personnalisés pour « Food with Friends ».

Il est conseillé de proposer le contenu partagé dans autant de formats de données que possible afin d'optimiser le nombre des applications cibles qui reconnaîtront le contenu issu de votre application. Lors de la prise en charge de plusieurs types de données, il est important que chaque type de données représente les mêmes informations. Cette parité donne confiance aux utilisateurs et entraîne une certaine prévisibilité envers le contenu qui est partagé depuis l'application tout en permettant aux applications cibles d'utiliser ce contenu de manière précise et créative. Mais ne proposez pas des types de données qui ne reflètent pas précisément l'intention de l'utilisateur pour le partage.

Par exemple, lors du partage à partir de la page d'arrivée « Food with Friends », nous créons un package de données avec des formats standard (texte, URI, HTML et fichiers) et des formats personnalisés. Nous ne fournissons pas le format bitmap, car les images présentant la nourriture dans la section [Tonight] (Ce soir), la carte, les miniatures des contacts ou d'autres photos n'apportent aucune aide dans la représentation du programme de la soirée.

Formats de données standard

Les formats de données standard que les applications sources peuvent partager sont les suivants :

  • Texte
  • URI
  • Bitmap
  • HTML
  • Fichier

Empaquetage des données pour le programme de la soirée

Comme indiqué plus haut, la conception de la page d'arrivée met l'accent sur le programme de la soirée en le mettant en avant dans le contrôle ListView et en minimisant les distractions. Cette conception souligne différents aspects du programme : date et time, lieu, participants, etc. Lorsque l'utilisateur effectue un partage à partir de cette vue, il s'attend à utiliser ces informations dans une autre application, qu'il s'agisse d'une application de réseau social, de calendrier, de rappel ou de messagerie électronique.

Page d'arrivée de « Food with Friends » mettant en avant la section [Tonight] (Ce soir) dans le contrôle ListView

Page d'arrivée de « Food with Friends » mettant en avant la section [Tonight] (Ce soir) dans le contrôle ListView

Ce guide Partage de contenu explique comment configurer les données du package pour ces types de données standard. Nous décomposons ensuite le contenu de la section [Tonight] (Ce soir) pour expliquer comment représenter ces informations de façon pertinente dans le package de données. Les informations contenues dans chaque type de données sont entièrement représentatives du programme de la soirée. Ainsi, quel que soit le type de données que l'application cible choisit d'accepter, la fidélité des informations est conservée.

Texte

Le partage de texte est idéal lorsque vous souhaitez que le contenu de votre application soit accessible à un grand nombre d'applications, car il s'agit d'un format couramment reconnu. Dans ce scénario, le texte dans le package de données doit fournir toutes les informations clés du programme, c'est-à-dire où, quand et avec qui , ainsi que l'URI, comme illustré ici :

Programme de la soirée : restaurant

Où : Southwestern Seafood

Quand : 19h00

Participants : Vous, Diane Prescott, Andy Rodgers et Ahmad Abu-Dayah

URI du programme de la soirée sur le site Web de « Food with Friends »

 

URI

Nous vous conseillons de fournir un lien Web pour le contenu partagé depuis l'application. Ainsi, les utilisateurs qui consultent le contenu sur un PC non équipé de Windows 8 ou de votre application peuvent toujours afficher le contenu partagé. Au cas où aucun URI Web n'est disponible, vous pouvez fournir un lien profond vers le contenu de votre application. En ce qui concerne « Food with Friends », l'application partage un URI vers le programme de la soirée sur le site Web de « Food with Friends ».

Bitmap

Sans objet, car une image dans ce cas ne permet pas d'exprimer l'idée du programme.

HTML

Le format HTML contient les balises de la version mise en forme des informations transmises via les autres formats de données. Il représente des informations importantes concernant le programme de la soirée : c'est-à-dire où, quand et avec qui.

Fichier

Partager des fichiers qui représentent le contenu partagé dans les formats appropriés permet aux applications cibles d'utiliser ces types de fichiers. Par exemple, « Food with Friends » peut utiliser le programme de la soirée aux formats .ics, .vcs ou dans d'autres formats de fichiers standard qui représentent un événement. Les applications de calendrier ou de rappel peuvent ainsi reconnaître ces formats répandus pour créer des événements.

Maintenant, lorsque l'utilisateur sélectionne Partager, il voit une liste filtrée d'applications ciblées qui reconnaissent les données partagées. L'utilisateur peut sélectionner l'application Contacts pour partager le contenu du programme de la soirée avec son réseau social connecté.

« Food with Friends » partageant vers l'application Contacts

« Food with Friends » partageant vers l'application Contacts

Formats de données personnalisés

Certaines applications cibles s'inscrivent pour accepter des formats de données spécifiques afin de prendre en charge des scénarios ciblés. Par exemple, une application de calendrier peut choisir de prendre en charge un format de données Event ou une application cartographique peut choisir de prendre en charge un format de données Place . Dans une application source, vous pouvez prendre en charge le partage de formats supplémentaires pour permettre à vos utilisateurs de mener à bien ces scénarios ciblés.

Formats de données personnalisés reconnus

Lors du choix des formats de données personnalisés à prendre en charge, il est naturel de se demander s'il existe des formats reconnus qui sont compris par toutes les applications. Consultez les schémas existants sur http://schema.org/ pour vous assurer que les types de données que vos applications envoient et reçoivent sont universellement reconnus. Ce site Web offre un ensemble de schémas, c'est-à-dire des types de données structurés qui sont couramment utilisés dans un grand nombre de secteurs. Certains formats de données courants pris en charge dans cette norme sont par exemple Person, Place, Restaurant, Event, Product et de nombreux autres. Lorsque les applications sources et cibles partagent un ensemble commun de formats de données, les possibilités de partage entre applications sont infinies.

Empaquetage des données pour le programme de la soirée

Maintenant que la notion de création d'un package de données avec des formats de données standard vous est familière, regardons comment penser à ajouter des formats de données personnalisés à votre package de données pour des scénarios utilisateur ciblés qui requièrent de tels formats de données complexes.

Dans la section Scénarios plus haut dans ce document, nous avons identifié une catégorie d'applications, c'est-à-dire la catégorie de calendrier et de planification à laquelle nous voulons connecter « Food with Friends ». Pour ce faire, nous pouvons faire référence aux schémas existants sur schema.org pour trouver un format de données qui représente les informations que nous voulons partager et qui soit reconnu par les applications que nous essayons de cibler. Étant donné que nous essayons de partager du contenu à partir de la section [Tonight] (Ce soir) sur la page d'arrivée, nous pouvons prendre en charge le partage du format Event dans le package de données. Ceci permet aux utilisateurs de partager leur programme avec des applications de calendrier et de planification qui reconnaissent ce format. Les images montrent l'expérience utilisateur intégrale avec les deux applications : lorsque l'utilisateur effectue un mouvement de balayage à partir du bord et appuie sur Partager, il voit une liste filtrée d'applications ciblées dans lesquelles il peut partager le programme de la soirée. La liste est renseignée avec les applications qui se sont inscrites pour prendre en charge le format Event dans le contrat de partage cible. Vous pouvez appuyer sur l'application de calendrier, afficher un aperçu du rendez-vous que vous êtes sur le point de partager, puis envoyer le programme de la soirée dans votre calendrier à partir de la vue cible de l'application. La procédure est rapide et efficace et permet à l'utilisateur de revenir immédiatement à l'utilisation de « Food with Friends ».

Page d'arrivée avec l'icône Partager présentant une application de calendrier en tant que cible de partage

Page d'arrivée avec l'icône Partager présentant une application de calendrier en tant que cible de partage

Vue d'une application de calendrier présentant les données de partage dans « Food with Friends » sous la forme d'un événement

Vue d'une application de calendrier présentant les données de partage dans « Food with Friends » sous la forme d'un événement

Nous n'entrerons pas pour le moment dans les détails conceptuels et techniques de la vue cible de l'application de calendrier. Consultez Réception d'un contenu partagé pour en savoir plus sur l'implémentation d'un contrat de partage cible.

Propriétés d'un package de données

La classe DataPackage prend en charge une collection de propriétés du type DataPackagePropertySet pour décrire les données contenues dans le package. Les applications cibles peuvent utiliser ces propriétés pour en savoir plus sur le contenu du package de données. Voici quelques exemples de propriétés communes : thumbnail, title et FileTypes. Nous vous conseillons de définir ces propriétés dans le package de données.

Voici certaines propriétés du package de données lors du partage du programme de la soirée.

  • Title : « Programme de la soirée »
  • Description : « Restaurant Southwestern Seafood »
  • Thumbnail : image plus petite représentant un événement ou un projet.

Consultez le document DataPackagePropertySet pour en savoir plus sur l'ajout des propriétés à votre package de données.

Partager les états d'erreurs

Dans l'exemple que nous venons de voir, nous avons montré comment concevoir et implémenter une source de partage pour la section [Tonight] (Ce soir) sur la page d'arrivée.

Ceci nous amène à nous poser les questions suivantes : Que faire si le programme de la soirée n'existe pas encore ? Que partager dans ce cas ? L'image suivante montre la page d'arrivée de « Food with Friends » alors que la planification d'événements n'a pas commencé.

Vue de la page d'arrivée sans aucun événement planifié Vue de la page d'arrivée sans aucun événement planifié

Comme vous pouvez le voir, la vue en concentrateur présente un petit nombre de sections, c'est-à-dire un modèle destiné à créer le programme de la soirée, [Friends’ Wishlists] (Listes de préférences des amis), [My Wishlist] (Ma liste de préférences), et si vous faites défiler plus loin, la vue [All Restaurants] (Tous les restaurants). Mais si aucun événement n'a été créé pour ce soir, rien dans cette vue n'est à partager.

Dans ce cas, comment répondre à l'événement datarequested sans disposer d'un package de données pertinent à remettre au gestionnaire de partage ?

Dans un tel cas, lorsque le partage ne peut pas être mené à bien dans la vue actuelle, l'application doit afficher un message d'erreur qui indique à l'utilisateur ce qu'il doit faire pour activer le partage dans cette vue. Pour ce faire, vous pouvez appeler la méthode FailWithDisplayText sur la classe DataRequest. Cette méthode annule l'opération de partage et fournit un message de texte au gestionnaire de partage. L'application du volet Partager peut alors présenter ce texte à l'utilisateur pour expliquer pourquoi le partage a échoué. Pour en savoir plus sur l'implémentation de ce message d'erreur personnalisé, consultez DataRequest.FailWithDisplayText.

Dans la vue ci-dessus, lorsque l'utilisateur tente de partager du contenu via l'icône Partager, l'application renvoie ce message d'erreur :

« You have no plans for tonight. Create a plan to share from this view. (Vous n'avez aucun projet pour la soirée. Créez un projet à partager dans cette vue.) »

Ceci permet à l'utilisateur de prendre les mesures nécessaires pour créer le programme de la soirée et ainsi activer le partage.

Page d'arrivée présentant l'icône Partager qui affiche le message d'erreur fourni par l'application

Page d'arrivée présentant l'icône Partager qui affiche le message d'erreur fourni par l'application

De la même façon, dans d'autres vues où le partage ne peut pas être pris en charge, nous vous recommandons de personnaliser le message d'erreur que l'application renvoie pour la vue actuelle. Autre exemple : si l'utilisateur ne s'est pas connecté à l'application, cette dernière peut renvoyer un message d'erreur demandant spécifiquement à l'utilisateur de se connecter avant de partager du contenu.

Enfin, assurez-vous que le texte du message d'erreur présenté à l'utilisateur l'aidera à activer le partage à partir de l'application.

Partager les sélections utilisateur

Lorsque l'utilisateur a sélectionné des éléments spécifiques dans la vue de votre application, vous pouvez refléter la volonté de partage à partir de votre application de cet utilisateur en créant et en partageant des packages de données qui représentent au mieux ces éléments sélectionnés.

Dans cette vue de l'application « Food with Friends », l'utilisateur a organisé un ensemble de restaurants dans lesquels il souhaite se rendre. L'utilisateur peut sélectionner un restaurant en particulier pour le partager avec un certain nombre d'applications de restauration.

Vue [My wishlist] (Ma liste de préférences) de « Food with Friends » dans laquelle un restaurant est sélectionné

Vue [My wishlist] (Ma liste de préférences) de « Food with Friends » dans laquelle un restaurant est sélectionné

Lorsque l'utilisateur sélectionne un restaurant dans cette vue, nous pouvons prendre en charge le partage du format Restaurant dans le package de données, comme décrit précédemment. Toutes les applications cibles qui reconnaissent le format sont maintenant disponibles comme cibles de partage. Dans l'image suivante par exemple, le restaurant sélectionné est partagé avec une application de prise de notes qui enregistre le restaurant dans le bloc-notes Restaurants préférés de l'utilisateur.

Application de prise de notes qui affiche des informations sur le restaurant dans la vue Partager

Application de prise de notes qui affiche des informations sur le restaurant dans la vue Partager

Lorsque l'utilisateur retourne dans l'application après avoir interagi avec l'application cible, il est préférable que l'application source préserve la sélection réalisée par l'utilisateur. Ceci peut être utile à l'utilisateur s'il souhaite modifier sa sélection ou partager le même contenu avec plusieurs cibles.

Résumé

Le partage de contenu à partir de votre application permet à cette dernière de jouer un rôle central dans un environnement social et connecté pour les utilisateurs de Windows 8. Votre application peut se concentrer sur la présentation à l'utilisateur d'un contenu riche et pouvant être partagé, tout en s'appuyant sur l'icône Partager pour réduire la surcharge induite par l'intégration avec chaque nouvelle application tierce susceptible de recevoir du contenu. En prenant en charge le partage, votre application bénéficie d'un avantage concurrentiel fort, car le partage élargit le champ des scénarios d'utilisation possibles dans l'application seule.

J'espère que ce billet vous a aidé à comprendre la motivation et la démarche qui ont permis de rendre ce partage possible depuis votre application. J'espère également que cette compréhension, alliée à votre vision des principaux avantages de votre application, vous aide à utiliser cette fonctionnalité de la plateforme d'une manière innovante et unique qui répond aux objectifs de votre application. Si vous souhaitez en savoir plus sur le partage, consultez Partage et échange de données, ainsi que l'exemple de partage de contenu depuis une application source pour vous aider à démarrer.

-- Ishita Kapur, chef de projet, Windows

  • Loading...
Leave a Comment
  • Please add 5 and 8 and type the answer here:
  • Post