Conception des applications Bing pour Windows 8

Présentation

Pour Windows 8, l'équipe Bing a conçu les applications Actualités, Météo, Finance, Sports, Voyage et Cartes. Cette présentation technique fournit des informations sur l'architecture de ces applications, sur les principales fonctionnalités de Windows 8 et les contrats qu'elles utilisent, sur les contrôles courants qu'elles emploient et sur la couverture mondiale dans son ensemble.

Il y a un an environ, quelques personnes issues de l'équipe Bing se sont consacrées à la création d'un ensemble d'applications Bing pour Windows 8. L'objectif de ces applications est de tenir les utilisateurs informés par le biais d'expériences rapides et fluides, avec du contenu émanant de plusieurs sources. Toutes les applications sont optimisées pour les périphériques tactiles et les tablettes, mais fonctionnent également parfaitement avec un clavier et une souris. Ces derniers mois, nous avons préparé la couverture mondiale de ces applications.

En développant ces applications, nous avions deux objectifs : concevoir un ensemble d'applications de qualité visant à renforcer encore l'intérêt de Windows 8 et à servir de modèle aux développeurs d'applications. Dans ce billet, vous trouverez une présentation technique des applications, ainsi que les informations/ressources à votre disposition pour développer vos propres applications. Tout au long du processus, nous avons beaucoup appris, même certaines choses que nous pourrions faire autrement une prochaine fois. Poursuivez la lecture pour en savoir plus.

Consultez la météo des lieux qui vous intéressent.

Application Météo : consultez la météo des lieux qui vous intéressent.

Présentation de l'architecture

Services de la plateforme

Toutes nos applications sont écrites en HTML/Java Script, à l'exception de l'application Cartes, qui est conçue en XAML/C#. Toutes les applications partagent une plateforme cliente commune qui fournit plusieurs services essentiels, tels que l'instrumentation, la mise en cache, les services de requête, les paramètres, l'itinérance, la gestion des profils, les personnalisations en fonction des marchés et les fondamentaux vocaux. Pour différentes raisons, nous avons délibérément choisi d'instaurer une mise en cache côté client afin d'investir dans le préchargement et pour que le client puisse définir la durée de vie des différentes données.

Nos applications sont conçues pour tous les terminaux, dont, d'après nous, un grand nombre seront des tablettes. Les tablettes Windows 8 peuvent permettre aux utilisateurs comme aux entreprises, d'utiliser du contenu aussi bien que d'en créer. Dans de nombreux cas, nous savons que les utilisateurs passent par différents états de connectivité (connectivité complète sur des réseaux rapides, faible connectivité sur réseau WiFi ou cellulaire, réseaux peu fiables, voire absence totale de connectivité). Notre objectif était de créer une application cliente riche qui soit différente d'une page Web. Nous avons fait appel aux concepts d'Internet Explorer qui mettent en cache toutes les données réseau dans le système de fichiers et réutilisent les données en cache en attendant que de nouvelles données arrivent. Nous avons par ailleurs élaboré des expériences pour les cas d'absence de données en cache et d'échec des requêtes réseau. Dans ces cas, nous proposons des messages d'erreur adaptés, des mécanismes d'exécution de nouvelles tentatives et détectons les changements de connectivité réseau provenant du système d'exploitation afin de déclencher automatiquement une nouvelle tentative.

Services de requête

Nos applications utilisent plusieurs services reposant sur la pile Bing et/ou sur Windows Azure. Les services et données Bing sont fournis via des serveurs d'applications dédiés qui reposent sur la plateforme Bing. Par exemple, l'application Finance utilise beaucoup de données et de services d'Azure, tandis que les données et services de l'application Cartes sont fournis via le contrôle Cartes, qui est conçu par l'équipe Cartes Bing. Nos applications comportent également d'autres articles, images et vidéos qui sont hébergés dans notre système de gestion de contenu. Pour créer des applications qui tirent parti de l'index Web Bing ou qui exploitent les données des éditeurs à la pointe de l'industrie, visitez le Windows Azure Marketplace, où vous pourrez accéder à l'API de recherche Bing et aux informations des principaux éditeurs, tels que STATS Sports ou des agences comme les Nations Unies.

Mise en cache

La prise en charge de centaines de millions d'utilisateurs interagissant avec des applications riches dotées d'un grand nombre de données et de contenus nécessite un environnement serveur considérable. Pour adapter les besoins matériels en fonction du nombre d'utilisateurs, nous avons beaucoup investi dans la mise en cache à différents niveaux. Le serveur de rendu de notre système de gestion de contenu, les services Azure, ainsi que la plateforme cliente locale même, mettent en cache des données afin de réduire la charge qui pèse sur les serveurs. Si vous anticipez la présence de plusieurs milliers d'utilisateurs, pensez à la mise en cache comme moyen de limiter l'environnement serveur et d'optimiser l'expérience utilisateur. Consultez le Centre de développement pour en savoir plus sur la mise en cache des applications (AppCache).

Voici certaines façons dont nos applications utilisent la mise en cache sur le client :

  1. Gestion des versions basse résolution et haute résolution de la même image : choix de ce qui doit être affiché en fonction de ce qui figure ou non dans le cache.
  2. Mise en cache côté client qui remplace la durée de vie du contenu défini par le serveur. Il arrive parfois que les services que nous utilisons ne nous appartiennent pas et que nous ne puissions pas contrôler cette durée de vie. Dans ce cas, notre client décide de la mise en cache.
  3. Veiller à afficher au moins des données en cache obsolètes au lieu de télécharger de nouvelles données qui risquent de ne pas être valides.

Contrôles personnalisés

La conception est un facteur de différenciation fondamental pour nos applications et joue un rôle clé dans la création d'applications intuitives et visuellement structurées. Pour conférer à toutes nos applications une apparence homogène et une expérience visuellement immersive, nous avons créé des contrôles personnalisés en plus des contrôles d'interface utilisateur que Windows propose. Si vous souhaitez donner à vos applications une apparence homogène ou utiliser une interface utilisateur de signature, nous vous encourageons à profiter de la flexibilité de Windows et à créer votre propre infrastructure d'expérience utilisateur ou vos propres contrôles personnalisés sur Windows 8. Vous trouverez de nombreuses ressources sur MSDN pour vous aider à créer votre propre infrastructure d'expérience utilisateur et vos propres contrôles personnalisés.

Prévention de défaillance

Si votre application s'appuie sur des données provenant d'un tiers, prévoyez d'éventuelles pannes complètes et partielles occasionnelles de la part de vos fournisseurs de données. Nous faisons tout ce qui est possible pour que nos applications évitent les points d'erreur uniques et nous intégrons des mécanismes de prévention de défaillance. Nous avons investi dans différentes pratiques de prévention de défaillance, côté serveur et côté client à la fois, principalement le bénéfice de nos utilisateurs. Toutes nos applications comportent des données et des services provenant de plusieurs parties de Microsoft et de partenaires industriels. Toutes ces sources externes présentent divers degrés de contrat de niveau de service du temps d'activité et de défaillances de niveau de service TTM (time to mitigate, temps d'atténuation des risques). Tout panorama donné sur n'importe quelle application peut reposer sur des données et des services provenant de plusieurs sources. Pour assurer une expérience utilisateur optimale, nous faisons appel à des techniques de prévention de défaillance côté serveur et côté client, notamment la mise en cache, les fournisseurs de sauvegarde, la dégradation mineure des fonctionnalités ou le retour à des données d'un niveau d'obsolescence acceptable dans certains cas (par exemple, les informations de destination). Pensez à ces pratiques de prévention de défaillance et prenez les mesures appropriées pour créer une interface utilisateur et des messages d'erreur adaptatifs lorsque vous concevez et développez votre application, et non pendant ou après un échec des données.

Infrastructure du client : choix du langage

Il est fréquent que les développeurs nous demandent pourquoi nous implémentons avec HTML côté client au lieu de HTML5 sur le serveur. Pour répondre rapidement : les applications dans Windows 8 ne sont pas des sites Web. La création d'une application de qualité du Windows Store nécessite un niveau approfondi d'intégration avec la plateforme que nous ne pouvons tout simplement pas atteindre avec le code Web standard. Si nous avions proposé des fonctionnalités uniquement via le HTML5 qui apparaît normalement dans le navigateur, les pages n'auraient pas pu accéder aux fonctionnalités de Windows 8 qui permettent d'optimiser l'expérience utilisateur.

La création d'une application nous a permis de profiter de plusieurs avantages, notamment :

  1. L'utilisation des contrôles intégrés de la bibliothèque JavaScript Windows (WinJS), ce qui nous a permis de tirer pleinement parti de la puissance de Windows 8 et de nous appuyer sur les expériences que l'équipe Windows avait conçues. Nous pensons avoir proposé une expérience utilisateur optimale avec WinJS.

  2. Les fonctionnalités de plateforme de l'application native ne sont pas accessibles via HTML5 dans un navigateur :

    • Fonctionnalités des périphériques, telles que l'accès au microphone, à la webcam ou au réseau
    • Emplacements de fichiers partagés, tels que Mes documents, Musique, Images ou Vidéos
    • Participation aux contrats, notamment les contrats de recherche, de partage, de paramètres, de contacts, etc.
    • En outre, certaines bibliothèques sont optimales dans WinRT par rapport à HTML5. Par exemple, les API de géolocalisation WinRT sont plus riches que celles que l'on trouve dans HTML5.
  3. Compléter le code JavaScript avec du code performant et saisi statiquement en C#. Nous avons utilisé des constructions de langage qui n'existent pas en JavaScript, par exemple LINQ et l'infrastructure asynchrone .Net4.5. Cette dernière construction est très importante, car elle permet d'assurer l'exactitude des opérations asynchrones, qui peuvent se révéler assez complexes.

    N'oubliez pas que si vous écrivez un fichier WinMD pour héberger une logique métier (en C# ou en C++), la redirection d'un grand nombre de données entre les différents langages présente un certain coût. Il est préférable d'avoir un appel unique qui redirige un grand nombre de données plutôt que plusieurs appels qui redirigent un petit nombre de données. En outre, C# et JavaScript ont des garbage collectors indépendants et distincts. Comme ils ne sont pas synchronisés, il est possible que la mémoire soit davantage sollicitée que si vous écriviez une application exclusivement avec JavaScript ou C#.

    Lorsque nous avons développé nos applications, nous avons décidé que les avantages inhérents à une application en langages JavaScript et C# valaient bien les coûts supplémentaires qu'entraînent ces complexités. Nous nous sommes assurés que nos applications étaient toujours optimales. Si vous envisagez de combiner JavaScript et C# dans votre application, gardez le coût et la complexité supplémentaires à l'esprit. Cela vous permet de choisir l'architecture qui répond le mieux aux besoins de votre application.

  4. Création de notre application Cartes par dessus XAML pour accéder au contrôle de carte DirectX natif. Cette approche nous a donné encore plus de contrôle et a optimisé les performances du rendu (ce qui est fondamental pour une carte !).

Développer pour Windows offre un ensemble standard d'expériences (taille d'écran, cibles tactiles, états d'affichage, dimensions d'orientation, parmi tant d'autres). Notre objectif était d'adapter notre code pour offrir la meilleure expérience utilisateur possible, en adéquation avec le périphérique de l'utilisateur. L'utilisation unique de HTML5 ne nous permet pas de fournir une expérience utilisateur cohérente et optimisée.

Fonctionnalités et contrats principaux de Windows 8

Comme je l'ai indiqué précédemment, un de nos objectifs était de servir de modèle aux développeurs d'applications tierces. Nous souhaitions présenter plusieurs fonctionnalités et contrats principaux de Windows 8 que nous avons implémentés afin de rendre nos applications plus attirantes pour les utilisateurs et mettre en évidence ce que vous pouvez faire dans Windows 8.

Barre de l'application

Toutes les applications offrent une navigation dans la barre de l'application supérieure et des boutons de commande contextuels dans la barre de l'application inférieure. Pour y accéder, effectuez un mouvement (en faisant glisser votre doigt du haut vers le bas de l'écran, ou du bas vers le haut).

Application Cartes : barre de l'application

Application Cartes : barre de l'application

Mode d'ancrage

Chaque application dispose d'un mode d'ancrage conçu avec soin. Nous ne nous sommes pas contentés de répliquer toutes les fonctionnalités de l'application dans une vue plus étroite. Au contraire, nous nous sommes demandés comment l'application allait être utilisée une fois ancrée. Dans l'application Actualités par exemple, nous fournissons un accès rapide à la liste des articles, mais ne proposons pas de mode de lecture miniature. Nous pensons que les utilisateurs reviendront en mode plein écran pour lire l'article de leur choix. Dans l'application Finance, la vue ancrée se concentre sur les indices principaux et sur votre liste de valeurs boursières. Dans l'application Météo, la vue ancrée donne une description résumée de la météo des prochains jours.

Application Météo et application Finance : mode d'ancrage

Application Météo et application Finance : mode d'ancrage

Partager

Toutes nos applications prennent en charge le contrat de partage source. Ce contrat nous permet d'envoyer des données à des cibles de partage, telles que l'application Courrier ou Contacts.

Application Actualités : partager

Application Actualités : partager

Imprimer

L'application Cartes prend en charge le contrat d'impression qui permet d'imprimer des cartes, des données, des itinéraires et des résultats de recherche.

Écran de verrouillage

L'application Météo utilise l'écran de verrouillage pour informer l'utilisateur de la météo actuelle, sans devoir déverrouiller et exécuter l'application, ou même accéder au menu Démarrer.

Vignettes dynamiques

À l'exception de l'application Cartes, toutes nos applications disposent de vignettes dynamiques et offrent aux utilisateurs des notifications utiles, telles que les derniers gros titres, la météo et les résultats sportifs ou d'autres informations intéressantes. Ainsi, même sur l'écran d'accueil, ces applications sont animées et encouragent les utilisateurs à les lancer pour en savoir plus.

Rechercher

Chaque application prend en charge le contrat de recherche via l'icône Rechercher. L'icône Rechercher demeure l'endroit où les utilisateurs peuvent trouver des fichiers locaux, des applications et d'autres informations dans Windows 8.

Application Voyage : rechercher

Application Voyage : rechercher

Paramètres

Chaque application prend en charge l'icône Paramètres. L'icône Paramètres offre aux utilisateurs un moyen d'accès homogène aux paramètres dans toutes les applications.

Zoom sémantique

Nos panoramas et affichages Liste prennent en charge le zoom sémantique, une technique tactile qui permet de présenter et de parcourir de grands ensembles de contenu au sein d'un affichage unique. Comme nos applications disposent d'un contenu important avec de nombreux groupes d'informations, le zoom sémantique permet aux utilisateurs d'obtenir un aperçu de tout ce contenu et d'accéder directement au groupe qui les intéresse.

Globalisation

Chaque application utilise le nouveau gestionnaire des langues et les paramètres de localisation d'origine de Windows 8 pour optimiser l'expérience utilisateur. Toutes les applications augmenteront en qualité une fois que les utilisateurs auront appris à utiliser ces paramètres et qu'ils auront vu que les applications les respectent.

Accessibilité

Lors du développement de nos applications, l'un de nos objectifs était d'offrir à tous les utilisateurs un niveau optimal d' accessibilité et de productivité grâce à la nouvelle interface utilisateur de Windows 8. Voici certains aspects du travail que nous avons accompli en matière d'accessibilité pour nos applications.

  • Clavier : notre objectif était de conserver le comportement rapide et fluide du clavier sur l'écran d'accueil de Windows 8 et dans les applications Windows. Les utilisateurs peuvent parcourir des grilles de vignettes et d'en-têtes à l'aide des touches fléchées, et les appeler à l'aide des touches ENTRÉE ou ESPACE. Le plus grand défi à relever était lié à la nature dynamique de certaines dispositions des vignettes (par exemple l'application Actualités). En nous basant sur les recommandations de Windows, nous avons adopté certaines conventions qui diffèrent de la page Web standard du modèle de navigateur. Dans nos applications, vous pouvez utiliser la touche ESPACE pour « revenir en arrière » au lieu d'utiliser ALT+FLÈCHE GAUCHE, ou un bouton « Page précédente du navigateur » si votre clavier en possède un.
  • Lecteur d'écran : nous avons tiré parti de HTML4 (h1-h6, ol, li, etc.), de la prise en charge améliorée de la balise sémantique dans HTML5 (header, hgroup, section, etc.) et du monde extraordinaire des rôles, états et propriétés ARIA pour faciliter la technologie d'assistance du lecteur d'écran dans le but d'améliorer l'expérience de tous les utilisateurs. En plus de tester et de déboguer activement avec le narrateur, nous avons découvert l'outil Inspecter, qui affiche dynamiquement l'arborescence de l'accès par programme utilisé par le narrateur. 
  • Fonctionnalités tactiles du narrateur : les bases solides que nous avons utilisées pour l'accessibilité du clavier et l'accessibilité du lecteur d'écran (hiérarchie DOM, HTML sémantique, rôles/états/propriétés ARIA, etc.) ont permis de nous assurer que nos applications prennent en charge toutes les formidables fonctionnalités tactiles du narrateur, telles que l'appel par double appui, le balayage à 2 doigts et le glissement entre des éléments. En activant les fonctionnalités tactiles du narrateur, les utilisateurs aveugles peuvent utiliser Windows 8 sur des écrans tactiles.

Contrôles personnalisés

Même si chacune de nos applications offre des informations et fonctions uniques, elles partagent toutes la même conception d'interface utilisateur générale qui les rapproche visuellement. Par exemple, les boutons de navigation qui se trouvent dans la barre de l'application supérieure ont le même aspect et fonctionnent de la même manière dans toutes nos applications. Les articles d'actualités dans l'application Sports partagent les mêmes éléments visuels que ceux de l'application Finance.

Il était primordial pour nous de donner la même apparence à nos applications. En suivant les recommandations et principes de base de Windows, nous voulions que toutes nos applications bénéficient d'un workflow commun pour l'accomplissement des tâches élémentaires, telles que l'ajout d'un code de titre dans l'application Finance ou l'ajout d'un lieu dans l'application Météo. Une interface commune permet aux utilisateurs d'interagir avec plusieurs applications de manière plus intuitive. Sur le plan du développement, cela nous a permis de partager une base de code plus vaste entre nos différentes applications et de libérer nos ingénieurs pour qu'ils se concentrent sur la création de fonctionnalités propres à chaque application. Pour atteindre cet objectif, nous avons conçu plusieurs contrôles d'interface utilisateur personnalisés (détails ci-dessous) spécifiques à nos applications, qui sont utilisés dans les applications Finance, Météo, Sports, Voyage et Actualités.

Les développeurs peuvent tirer parti d'un grand nombre de contrôles intrinsèques de base en HTML, tels que les boutons et les zones de texte. WinJS fournit en outre des contrôles plus riches qui présentent une interface utilisateur et une logique métier plus complexes, tels que l'affichage Liste et la barre de l'application. Lorsque nous avons identifié quels contrôles utiliser pour les éléments visuels de nos applications, nous avons fait en sorte de réutiliser autant que possible les contrôles intrinsèques ou WinJS. Lorsque nous avions besoin d'une interface utilisateur ou d'une logique métier plus sophistiquée, nous avons conçu des contrôles personnalisés conformes aux directives WinJS. Certains de nos contrôles personnalisés sont des contrôles composites constitués de contrôles WinJS et HTML de base, tandis que d'autres découlent de contrôles WinJS et que d'autres encore sont entièrement créés.

Intégration à WinJS

En créant des contrôles personnalisés avec les mêmes principes que les contrôles WinJS, nos ingénieurs ont pu plus facilement développer et déboguer les applications qui utilisent à la fois des contrôles WinJS et personnalisés. Surtout, en concevant pour des modèles WinJS, la couche présentation de nos contrôles (HTML/CSS) est isolée de la logique métier (Javascript). Voici quelques-uns des principes clés que nous avons suivis :

  • Chaque contrôle possède un constructeur WinJS qui accepte deux arguments : l'élément DOM de niveau supérieur et les options du contrôle de cette instance.
  • Afin d'utiliser les liaisons de modèle WinJS, nous définissons les accesseurs Get et les méthodes setter publics sur chaque contrôle qui reflète le modèle de données observable derrière ce contrôle.
  • Nous évitons de créer des comportements qui nécessitent la gestion directe de l'instance du contrôle. Chaque interaction est facilitée par les propriétés et méthodes publiques.
  • Nous utilisons les API WinJS.Namespace et WinJS.Class pour définir nos contrôles dans une syntaxe qui est intuitive et connue des développeurs.
  • Pour ajouter des événements personnalisés à un contrôle, nous mélangeons nos classes de contrôle avec WinJS.Utilities.eventMixin ou WinJS.UI.DOMEventMixin. Cela permet à nos contrôles de bénéficier des méthodes de distribution des événements et d'ajout ou de suppression des détecteurs d'événements. L'interface de ces méthodes addEventListener, removeEventListener et dispatchEvent est très connue des développeurs HTML et Javascript. Pour en savoir plus sur la création des contrôles WinJS personnalisés, cliquez ici.

Utilisation de CSS3 pour la disposition

Nous avons tiré parti des performances de l'accélération matérielle et d'un grand nombre des nouvelles fonctionnalités de CSS3 pour concevoir la disposition de nos contrôles.

  • Nous avons utilisé les grilles, les boîtes flexibles, les régions, les exclusions, le panoramique et le zoom, les animations et les transformations pour produire des dispositions riches qui sont moins faciles, voire impossibles, à créer dans CSS2 et versions antérieures. Nous avons utilisé les requêtes de médias CSS afin de gérer la disposition pour différentes résolutions d'écran et orientations. C'est la meilleure façon de gérer la rotation et l'ancrage, car cette méthode décharge le processeur de la majeure partie du travail et libère les cycles du processeur.

En général, nous faisons en sorte de transférer autant de logique de disposition que possible vers CSS afin de maintenir une fréquence d'images élevée et une fluidité de l'interface utilisateur.

Contrôles personnalisés les plus notables

Nos applications utilisent plus d'une douzaine de contrôles personnalisés pour optimiser l'expérience des utilisateurs. Vous trouverez ci-dessous la description de 2 contrôles qui tirent parti de l'infrastructure :

  • Annonces : dans nos applications, les annonces peuvent apparaître dans les panoramas et dans les articles consultés au sein d'articles (le « lecteur d'article »). Notre équipe utilise le contrôle des annonces du SDK Microsoft Advertising pour afficher des annonces. Les articles possèdent une propriété qui indique si l'article peut héberger ou non une annonce. Le lecteur d'article utilise actuellement une logique de comptabilisation simple qui affiche une annonce sur une page entière à la deuxième page d'un article, ou une annonce sur une seule colonne à la fin de l'article, ou les deux.
  • Lecteur d'article : chaque application a accès au contrôle de lecteur d'article. Nos applications peuvent transmettre un certain nombre de fragments HTML, d'images et de vidéos, ainsi que des informations sur la disposition, et le lecteur d'article dispose automatiquement le contenu sous forme de colonnes. Le contrôle est implémenté à l'aide du nouveau mécanisme de régions HTML en HTML5. Il peut analyser les données de notre système de gestion du contenu automatiquement, sans que l'application n'ait besoin d'analyser manuellement les données.
    Application Actualités présentant le contrôle de lecteur d'article

Application Actualités présentant le contrôle de lecteur d'article

Couverture mondiale

Étant donnée la portée mondiale du Windows Store, vous pouvez avoir envie de rendre vos applications accessibles à différents marchés et langues. Comme indiqué précédemment, toutes nos applications sont disponibles dans tous les marchés Windows pris en charge. Nous avons choisi de créer nos applications pour tous les marchés Windows pris en charge afin de les mettre à la disposition d'autant d'utilisateurs de Windows que possible. Cette section présente les principales étapes du travail que nous avons réalisé pour que nos applications soient disponibles au niveau mondial.

  • Localisation : la première tâche, et probablement la plus évidente, que vous devez entreprendre est la traduction. Nous avons localisé l'ensemble des applications en 106 langues. Pour ce faire, nous avons mis en place un processus de traduction du chrome des applications et une traduction côté serveur pour différents niveaux intermédiaires. Pour en savoir plus sur l'utilisation du Kit de ressources pour application multilingue avec Visual Studio, cliquez ici. Selon le degré de pénétration du marché que vous souhaitez, vous devrez peut-être traduire le contenu de vos applications en plus du chrome.
  • Personnalisation en fonction des marchés : dans le cadre de notre système de configuration, les applications peuvent activer ou désactiver des fonctionnalités selon le marché dans lequel elles s'exécutent. En général, un marché se définit comme la combinaison de la préférence linguistique de l'utilisateur (sous Panneau de configuration -> Horloge, langue et région -> Langue) et le paramètre de localisation d'origine de l'utilisateur dans Windows (sous Région -> Emplacement). Les API que nous utilisons pour la personnalisation en fonction des marchés sont notamment :

Voici quelques fonctionnalités spécifiques aux marchés dans nos applications :

    • Application Voyage : recherche de vols pour des marchés spécifiques (EN-US, FR-FR par exemple)
    • Application Météo : utilisation de différentes sources météorologiques par marché
    • Application Sports : ligues sportives spécifiques aux régions disponibles par défaut à l'utilisateur
  • Mécanismes spécifiques aux emplacements physiques : l'emplacement physique réel de l'utilisateur est utilisé dans deux mécanismes :

    • Blocage de l'application au démarrage : si l'application se trouve dans une région où nous ne sommes pas autorisés à afficher du contenu (région frappée d'embargo), l'application présente à l'utilisateur un message indiquant qu'elle ne peut pas s'exécuter dans cette région, puis elle se ferme.
    • Commercialisation en fonction de l'emplacement physique : si l'utilisateur se trouve dans un pays où certaines fonctionnalités doivent ou ne doivent pas être activées ou où certains serveurs doivent être utilisés (comme cela peut être le cas si vous développez des applications pour certains marchés), l'application peut configurer cette exigence. Cela nécessite une modification de la fonctionnalité Personnalisation en fonction des marchés mentionnée ci-dessus.
  • Fonctionnalités internationales spécifiques aux applications : dans nos applications, nous avons créé plusieurs fonctionnalités à rayonnement international. Par exemple, nous avons choisi de créer et de mettre l'accent sur les horaires de vols et sur les infos des vols dans notre application Voyage, au lieu de nous concentrer sur la réservation des vols uniquement, car nous ne sommes pas actuellement en mesure d'offrir des réservations de vols dans un certain nombre de marchés internationaux. Si vous développez pour des marchés internationaux, nous vous encourageons à anticiper les marchés dans lesquels il est possible que vous ne puissiez pas déployer certaines fonctionnalités et à consacrer votre temps à développer et à améliorer les fonctionnalités qui seront utilisées plus largement.

Performances et réactivité

Entre la version RTM et la date de disponibilité générale de Windows 8, une des phases a été consacrée à l'amélioration des performances. Voici certains des domaines sur lesquels nous avons travaillé :

  • Réglage du chemin de démarrage afin d'optimiser l'utilisation du processeur et les appels d'E/S. Voici certaines des tâches :
    • Exécuter des tâches indépendantes en parallèle afin qu'elles puissent s'exécuter sur différents noyaux.
    • S'assurer que les tâches utilisant le processeur de manière intensive ne sont pas bloquées par les tâches utilisant l'E/S
  • S'assurer que le préchargement se produit de manière judicieuse afin que les données soient disponibles à l'utilisateur avant que celui-ci ne les affiche. Nous pouvons par exemple précharger le premier article d'un panorama, car les utilisateurs ont souvent tendance à cliquer dessus.
  • Ajout d'une logique métier à notre contrôle d'image afin qu'il affiche des images haute résolution et faible résolution de manière optimale (c'est-à-dire une lecture à partir du cache ou une lecture à partir du réseau selon ce qui se trouve déjà dans le cache).
  • Réduction du nombre d'appels de fonctions qui sont redirigés dans la limite JS/C#/C++.
  • S'assurer que les tâches de traitement longues sur le thread d'interface utilisateur ont été divisées en tâches plus petites et discrètes. Ceci permet à l'interface utilisateur de se figer moins souvent.
  • Faire circuler des références à des fichiers image sur le disque au lieu de les transformer en objets blob et de faire circuler ces objets blob. Les objets blob sont parfaits pour certains types d'opérations, mais lorsque nous avons eu besoin de faire circuler un grand nombre d'images, les performances se sont dégradées.

Faites-nous part de vos commentaires !

Nous vous encourageons à essayer nos applications et à nous faire part de vos questions et avis. Laissez un commentaire ou faites-nous partager vos expériences de création d'applications pour Windows 8. Faites-nous savoir si vous avez des questions et nous serons ravis de vous donner de plus amples informations. Nous serions également heureux de savoir ce que nous pouvons vous apporter pour vous aider à développer des applications pour Windows 8.

--Jigar Thakkar, Responsable de développement partenaire, Équipe Application Experiences