<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog de Steven Hanquez &#187; Metro Style Apps</title>
	<atom:link href="https://blog.developpez.com/steven.hanquez/pcategory/xaml/metro-style-apps/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/steven.hanquez</link>
	<description></description>
	<lastBuildDate>Thu, 13 Sep 2012 17:37:53 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Windows 8 Consumer Preview disponible en téléchargement</title>
		<link>https://blog.developpez.com/steven.hanquez/p10770/visual-studio/windows_8_consumer_preview_disponible_en</link>
		<comments>https://blog.developpez.com/steven.hanquez/p10770/visual-studio/windows_8_consumer_preview_disponible_en#comments</comments>
		<pubDate>Wed, 29 Feb 2012 14:45:54 +0000</pubDate>
		<dc:creator><![CDATA[Hathortos]]></dc:creator>
				<category><![CDATA[Metro Style Apps]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Comme annoncé, Microsoft a mis en ligne une nouvelle version de Windows 8, son nouvel OS attendu pour la fin de l’année 2012. Baptisée Consumer Preview, cette édition succède à la Developer Preview publiée en septembre 2011 à l’occasion de la Build. Cette nouvelle version apporte son lot de nouveautés et de corrections. On pourrait par exemple citer l’implémentation de Skydrive, de tous les services Windows Live (rebaptisés pour l’occasion) ou encore la disparition du [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Comme annoncé, Microsoft a mis en ligne une nouvelle version de Windows 8, son nouvel OS attendu pour la fin de l’année 2012. Baptisée Consumer Preview, cette édition succède à la Developer Preview publiée en septembre 2011 à l’occasion de la Build.</p>
<p>Cette nouvelle version apporte son lot de nouveautés et de corrections. On pourrait par exemple citer l’implémentation de Skydrive, de tous les services Windows Live (rebaptisés pour l’occasion) ou encore la disparition du bouton Démarrer.</p>
<p>Pour les développeurs, c’est surtout l’occasion de découvrir la prochaine mouture de Visual Studio et du Framework .Net (version 4.5). Le principal changement de Visual Studio 11 réside dans son interface qui a fait l’objet d’une refonte totale pour coller à l’esprit Metro (ce qui provoque quelques réactions dans la communauté).</p>
<p>Pour télécharger tout cela, rendez-vous sans plus attendre à <a href="http://windows.microsoft.com/en-US/windows-8/iso">cette adresse</a>.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cycle de vie d’une application Metro Style</title>
		<link>https://blog.developpez.com/steven.hanquez/p10735/xaml/cycle_de_vie_d_une_application_metro_sty</link>
		<comments>https://blog.developpez.com/steven.hanquez/p10735/xaml/cycle_de_vie_d_une_application_metro_sty#comments</comments>
		<pubDate>Tue, 21 Feb 2012 09:06:29 +0000</pubDate>
		<dc:creator><![CDATA[Hathortos]]></dc:creator>
				<category><![CDATA[Metro Style Apps]]></category>
		<category><![CDATA[XAML]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Nous avons déjà détaillé, au travers de plusieurs billets, les modifications apportées sur le plan visuel par les applications Metro Styles. Aujourd’hui, nous allons nous intéresser à la façon dont les applications sont lancées et exécutées sous Windows 8, autrement dit, à leur cycle de vie. Comme vous allez le voir, beaucoup de choses ont changé ! La capture d’écran ci-dessus montre clairement l’un des premiers changements importants. Sous Windows 7 (et antérieurs), c’est l’utilisateur [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Nous avons déjà détaillé, au travers de plusieurs billets, les modifications apportées sur le plan visuel par les applications Metro Styles. Aujourd’hui, nous allons nous intéresser à la façon dont les applications sont lancées et exécutées sous Windows 8, autrement dit, à leur cycle de vie. Comme vous allez le voir, beaucoup de choses ont changé !<span id="more-9"></span></p>
<p><img src="http://blog.developpez.com/media/20022012-3-01.jpg" width="700" height="394" alt="" /></p>
<p>La capture d’écran ci-dessus montre clairement l’un des premiers changements importants. Sous Windows 7 (et antérieurs), c’est l’utilisateur qui manage lui-même la durée de vie d’une application. Ce dernier peut lancer 1 ou plusieurs applications en même temps et a également la liberté de fermer les applications de son choix, mettant par la même occasion fin à leur processus.</p>
<p>Sous Windows 8, les choses sont différentes. C’est désormais le système qui manage la durée de vie des applications. Quand une application est lancée pour la première fois (on appelle cette étape l’activation), celle-ci rejoint les applications en mémoire et y demeure. Si l’application est au premier plan, elle est dite « active ». A l’inverse, toutes les applications en arrière plan sont considérées comme « suspendues ». Par défaut, l’utilisateur n’a pas la possibilité de fermer complètement une application lancée (sauf en passant par le Gestionnaire de Tâches pour forcer la fermeture). Le passage d’une application en mode Actif ou Suspendu est donc géré par le système. L’utilisateur choisi simplement l’application qui apparait au premier plan.</p>
<p><img src="http://blog.developpez.com/media/20022012-3-02.png" width="700" height="395" alt="" /></p>
<p>On distingue donc 3 états dans la durée de vie d’une application : Running, Suspended et Terminated. Une application au premier plan est en exécution (Running) et est mise en pause (suspending) dés son passage en arrière plan. En réalité, ce passage se fait après un court délai (quelques secondes). Elle passe alors en mode « suspended ». Si l’application passe de nouveau au premier plan, elle repasse en exécution automatiquement (resuming). Ce passage se fait lui instantanément afin d’assurer une fluidité dans les actions de l’utilisateur. Enfin, dans certains cas précis, tel qu’un manque de mémoire, le système peut décider de terminer certaines applications suspendues. Cela intervient également en cas de plantage d’une application, de fermeture de Windows ou de changement d’utilisateur.</p>
<p><img src="http://blog.developpez.com/media/20022012-3-03.png" width="700" height="393" alt="" /></p>
<p>Il est bon de préciser que les applications en suspens n’ont aucun impact sur la durée de vie de la batterie. Entendez par là que ces applications ne consomment aucune ressource au niveau du processeur mais subsistent uniquement en mémoire.</p>
<p>Voyons encore un peu plus en détails le processus de transition des différents états de vie d’une application. Comme on peut le constater sur le schéma ci-dessous, les applications mises en suspens le sont en réalité au bout de 5 secondes. Le but étant de permettre aux développeurs de lancer du code sur l’évènement (OnSuspend) afin, par exemple, de sauvegarder l’état de l’application. La sauvegarde est utile car si l’application venait à être terminée (à cause d’un manque de mémoire), celle-ci ne serait pas avertie. Autrement dit, il est impossible d’exécuter du code au moment de la fermeture totale d’une application. Il faut donc anticiper cette possibilité !</p>
<p>Une application en suspens qui redevient active (resuming) est par contre notifiée de cet évènement (OnResume).</p>
<p>Remarquons qu’il est donc impossible de lancer plusieurs instances d’une même application. Si l’application est déjà en suspens, la sélectionner depuis le bureau ne fera que la remettre au premier plan.</p>
<p><img src="http://blog.developpez.com/media/20022012-3-04.png" width="700" height="398" alt="" /></p>
<p>Résumons l’état suspendu en quelques points :</p>
<ul>
<li>La suspension d’une application n&#8217;est pas planifiée. Cela intervient seulement si l’application passe en arrière plan.</li>
<li>Une application suspendue n’utilise pas le CPU, les disques ou les différentes connectivités (web, …).</li>
<li>L’application demeure simplement en mémoire, ce qui explique son impact nul sur la batterie de l’appareil.</li>
<li>Tous les threads sont suspendus.</li>
<li>Le kernel s’assure que la suspension d’une application n’intervient pas à un moment critique pouvant causer des plantages.</li>
<li>Le passage de l’état suspendu à l’état actif se fait instantanément.</li>
</ul>
<p><strong>Différentes manières de lancer une application</strong><br />
Sous Windows 7, le lancement d’une application se faisait la plupart du temps en sélectionnant le raccourci présent sur le bureau ou dans le menu démarrer.</p>
<p>Sous Windows 8, l’activation d’une application peut se faire depuis les tuiles (qui remplacent les icones du bureau) mais peut également intervenir depuis les menus de recherche ou encore de partage (voir schéma ci-dessous).</p>
<p><img src="http://blog.developpez.com/media/20022012-3-05.jpg" width="700" height="395" alt="" /></p>
<p>Comme nous l’avions déjà évoqué dans le billet (« Comment faire une bonne application Metro »), les applications Metro Style peuvent utiliser des Contrats afin de se lier au système et / ou avec d’autres applications. On trouve par exemple un contrat « Search » et un contrat « Share ». Pour plus de détails, je vous invite à lire le billet susmentionné, ou encore d’attendre un prochain article qui détaillera en pratique comment implémenter ces fameux contrats. Mais revenons au cycle de vie de nos applications.</p>
<p>En lançant une application depuis un contrat, des informations seront transmises afin de conserver le contexte. Prenons l’exemple d’une application qui permet de gérer sa médiathèque (qu’on appellera sobrement « Médiathèque »). L’utilisateur y stocke les films en sa possession en précisant, entre autre, leur nom. On pourrait trouver utile d’implémenter le contrat « Search » dans cette application. Ainsi, en utilisant le menu recherche de Windows 8, l’utilisateur se verrait automatiquement proposer de lancer sa recherche dans le contexte de l’application « Médiathèque ».</p>
<p>Dans l’application Médiathèque, il est donc primordial de prendre cela en compte afin de récupérer, dans ce cas précis, la saisie initiale de l’utilisateur pour lancer la recherche dans la Médiathèque.</p>
<p>Une application peut donc se lancer de différentes manières, surtout si celle-ci implémente un ou plusieurs contrats.</p>
<p><strong>Utilisation du Splash Screen</strong><br />
En lançant une application pour la première fois (activation), celle-ci doit inévitablement se charger et effectuer quelques traitements. Pendant ce temps, un Splash Screen est affiché sur l’écran de l’utilisateur. A la fin du chargement, le Splash Screen disparait pour laisser place à la vue principale de l’application. Toutes ces étapes sont parfaitement expliquées dans le schéma ci-dessous :</p>
<p><img src="http://blog.developpez.com/media/20022012-3-07.png" width="700" height="394" alt="" /></p>
<p>C’est le système qui s’occupe automatiquement d’afficher ce Splash Screen. Le développeur peut très simplement choisir la couleur et l’image à afficher sur cet écran d’attente. Signalons que le Splash Screen ne peut pas être affiché plus de 15 secondes. Au delà de ce délai, si votre application n’est toujours pas chargée et visible à l’écran, le système la terminera automatiquement.</p>
<p>Si votre application nécessite un chargement de plus de 15 secondes à son activation, vous devez mettre en place un Splash Screen « Etendu ». En fait, il s’agit d’une astuce consistant à utiliser la première vue de l’application comme un Splash Screen. Ainsi, pour le système l’application est bien en exécution alors que pour l’utilisateur, le chargement est toujours visible.</p>
<p>Signalons à ce titre que l’API Splash Screen est disponible.</p>
<p><img src="http://blog.developpez.com/media/20022012-3-08.png" width="700" height="395" alt="" /></p>
<p>Le schéma ci-dessus résume clairement le processus d’activation d’une application.</p>
<p><strong>Les bonnes pratiques à avoir</strong><br />
Bonnes pratiques de conservation et de restauration du contexte :</p>
<ul>
<li>Une application en exécution doit enregistrer de manière incrémentale les données utilisateur.</li>
<li>Quand l’application passe en arrière plan (Suspending), il faut sauvegarder l’état de l’application à ce moment précis (par exemple, l’écran sur lequel se trouve l’utilisateur, la dernière page lue d&rsquo;un livre, le dernier niveau terminé d&rsquo;un jeu, …). Le fait d’avoir sauvegardé les données utilisateur tout au long de l’exécution de l’application permet de gagner du temps lors de la mise en suspens. Vous devez partir du principe que l’application peut être terminée et avoir en mémoire que vous ne serez pas notifié de cet événement. C’est donc votre dernière chance d’enregistrer l’état de l’application !</li>
<li>Quand une application « En suspens » est activée, vous n’avez rien à faire. En effet, l’application est restée en mémoire tout ce temps.</li>
<li>Quand une application est activée pour la première fois, il faut restaurer les données utilisateurs qui ont été précédemment sauvegardées. L’utilisateur doit avoir l’impression de n’avoir jamais quitté l’application.</li>
</ul>
<p>Bonnes pratiques lors de l’activation d’une application :</p>
<ul>
<li>Il faut activer une application rapidement. Ce qui n’est pas utile peut être fait en différé.</li>
<li>L’activation permet d’initialiser l’application et éventuellement de restaurer les données utilisateurs.</li>
<li>Si le chargement dure plus de 15 secondes, il faut utiliser un Splash Screen « Etendu ».</li>
</ul>
<p>Bonnes pratiques lors de la suspension d’une application :</p>
<ul>
<li>La sauvegarde des données doit être rapide, moins de 5 sec. En effet, c’est le temps que laisse le système à l’application avant de passer réellement à l’état suspendu.</li>
<li>Sauvegarder les données de manière incrémentale avant que l’application ne soit mise en suspens.</li>
<li>Avoir à l’esprit qu’une application en suspens peut être terminée sans notification.</li>
<li>Mettez à jour la tuile de l’application. </li>
</ul>
<p><strong>En résumé</strong><br />
Le cycle de vie des applications Metro Style est managé par le système et non plus par l’utilisateur. Une fois activée, une application demeure en mémoire sauf si le système décide de la terminer (manque de mémoire, …). Ce changement nécessite quelques modifications au niveau de la conception des applications afin, par exemple, de prendre en compte la gestion de la sauvegarde et de la restauration des données utilisateurs.</p>
<p>Ce billet, qui est dédié au cycle de vie des applications Metro Style, fait volontairement l’impasse sur les Tuiles et les notifications. En effet, il y a beaucoup de choses à dire sur le sujet et un article dédié sera publié très prochainement sur mon blog.</p>
<p><img src="http://blog.developpez.com/media/20022012-3-09.jpg" width="700" height="393" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Une application Metro Style mais plusieurs affichages</title>
		<link>https://blog.developpez.com/steven.hanquez/p10733/xaml/une_application_metro_style_plusieurs_af</link>
		<comments>https://blog.developpez.com/steven.hanquez/p10733/xaml/une_application_metro_style_plusieurs_af#comments</comments>
		<pubDate>Mon, 20 Feb 2012 16:21:47 +0000</pubDate>
		<dc:creator><![CDATA[Hathortos]]></dc:creator>
				<category><![CDATA[Metro Style Apps]]></category>
		<category><![CDATA[XAML]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[La création d’applications Metro Style sous Windows 8 va apporter de nouvelles obligations pour les développeurs. En effet, il faut bien comprendre que les applications publiées sur le futur Market Place seront potentiellement utilisées sur une grande variété d’appareils. On pense bien évidemment aux ordinateurs classiques, mais également aux ordinateurs équipés d’un écran tactile, aux tablettes, aux PC Portable, &#8230; Chaque écran ayant de plus une résolution qui peut varier du simple au double et [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>La création d’applications Metro Style sous Windows 8 va apporter de nouvelles obligations pour les développeurs. En effet, il faut bien comprendre que les applications publiées sur le futur Market Place seront potentiellement utilisées sur une grande variété d’appareils. On pense bien évidemment aux ordinateurs classiques, mais également aux ordinateurs équipés d’un écran tactile, aux tablettes, aux PC Portable, &#8230; Chaque écran ayant de plus une résolution qui peut varier du simple au double et un format qui peut différer (16/9, …).<span id="more-8"></span></p>
<p><img src="http://blog.developpez.com/media/20022012-2-01.jpg" width="750" height="400" alt="" /></p>
<p>Pour gérer cette grande diversité d’affichage, Microsoft pose quelques recommandations utiles mais aussi certaines obligations. Passons en revue tous ces éléments.</p>
<p><strong>Snap, Filled ou plein écran</strong><br />
Toute application Metro Style disponible sur le Market Place doit obligatoirement implémenter 3 types d’affichage : Snap, Filled et le traditionnel Plein écran.</p>
<p>Nous ne détaillerons pas le mode plein écran puisqu’il s’agit du format d’affichage traditionnel dans lequel l’application occupe la totalité de l’écran. Intéressons nous plutôt aux modes Snap et Filled. Sous Windows 8, l’utilisateur a en effet la possibilité d’afficher deux « applications » en même temps, l’une occupant environ 1/3 de l’écran et l’autre le reste. Vos applications étant susceptibles d’être affichées en mode réduit (Snap) ou en mode Filled, il est impératif de penser à adapter l’affichage pour offrir une expérience utilisateur optimale en toute circonstance ! Vous devez toujours avoir cet objectif en tête.</p>
<p>En effet, si l’utilisateur ne peut plus utiliser convenablement votre application en mode réduit, celle-ci perdra fortement en intérêt (et sera rapidement supprimée).</p>
<p><img src="http://blog.developpez.com/media/20022012-2-02.png" width="700" height="392" alt="" /></p>
<p>Comme le montre la capture d’écran ci-dessus, le mode Snap occupe 320 px en largeur. Cette valeur est universelle, quelque soit la résolution ou la taille de votre écran. C’est donc la valeur du mode Filled (ici 1024 px de largeur) qui sera susceptible de varier selon la taille de votre écran.</p>
<p>Prenons maintenant l’exemple d’une application, affichée ci-dessous en plein écran :</p>
<p><img src="http://blog.developpez.com/media/20022012-2-03.png" width="700" height="393" alt="" /></p>
<p>L’utilisateur peut y découvrir une série de Grid contenant divers éléments. Sans adaptation de l’affichage, le mode Snap serait inutilisable :</p>
<p><img src="http://blog.developpez.com/media/20022012-2-04.png" width="700" height="393" alt="" /></p>
<p>Comme vous pouvez le constater, la vue n’est pas du tout optimisée et l’utilisateur devra sans cesse scroller pour parcourir toutes les Grid.</p>
<p>La capture ci-dessous montre en revanche une bonne adaptation de l’affichage pour le mode Snap :</p>
<p><img src="http://blog.developpez.com/media/20022012-2-05.png" width="700" height="392" alt="" /></p>
<p>La vue étant réduite, l’affichage a été fortement revu pour s’étirer en hauteur et non plus en largeur. La navigation en sera beaucoup plus facile et agréable.</p>
<p><img src="http://blog.developpez.com/media/20022012-2-06.png" width="700" height="392" alt="" /><br />
Signalons que l’affichage Snap peut être placé à gauche ou à droite de l’écran</p>
<p><strong>Détecter le type d’affichage</strong><br />
Pour terminer sur cette partie, voyons comment détecter les changements au niveau de l’affichage. Pour cela, il est possible d’utiliser la propriété Value de la classe ApplicationLayout ou de s’abonner à l’évènement LayoutChanged.</p>
<p><img src="http://blog.developpez.com/media/20022012-2-07.png" width="700" height="393" alt="" /></p>
<p>Rappelons pour ceux qui découvrent Windows 8 que l’utilisateur ne peut plus redimensionner à sa guise la taille d’une fenêtre. Pour être exact, il n’y a plus de fenêtre. Une application est donc, soit en plein écran, soit en mode Snap, soit en mode Filled (ou éventuellement en arrière plan). Il n’y a pas d’autres cas possible.</p>
<p><strong>Portrait ou paysage</strong><br />
Une application Metro Style est susceptible d’être affichée en mode portrait ou en mode paysage. Sur les périphériques tels que les tablettes, l’accéléromètre permet d’ailleurs à l’utilisateur de basculer d’un mode à l’autre en tournant simplement son appareil.</p>
<p>Il est conseillé d’adapter l’affichage en mode portrait pour rendre l’utilisation de votre application toujours aussi agréable. Dans l’exemple ci-dessous, cela se traduit par une réorganisation des éléments des différentes Grid afin d’utiliser pleinement la hauteur disponible.</p>
<p><img src="http://blog.developpez.com/media/20022012-2-08.png" width="700" height="390" alt="" /></p>
<p>Il est cependant possible de bloquer l’orientation si nécessaire. Dans ce cas, l’affichage ne basculera pas, même si l’utilisateur tourne sa tablette. Signalons également que l’affichage Snap n’est pas disponible en mode portrait, ce qui est logique puisque la largeur est fortement réduite. En résumé, votre application sera toujours affichée en plein écran en mode portrait.</p>
<p>Pour détecter les changements d’orientation, vous pouvez au choix utiliser la propriété CurrentOrientation ou l’évènement OrientationChanged.</p>
<p><img src="http://blog.developpez.com/media/20022012-2-09.png" width="700" height="395" alt="" /></p>
<p><strong>Une variété de résolution</strong><br />
La encore, la résolution des écrans sur lesquels vont s’afficher les applications Metro Style peut fortement varier. Cependant, Microsoft a placé certaines limites. Tout d’abord, la résolution minimale ne peut pas être en dessous de 1024*768. Ainsi, toutes les tablettes Windows 8 devront obligatoirement avoir un écran avec une résolution égale ou supérieure à cette valeur. La résolution considérée comme « de base » est de 1366*768.</p>
<p>Avec des densités de pixels pouvant fortement varier, l’expérience tactile peut s’en trouver détériorée. En effet, un élément manipulable (un bouton par exemple) sera forcément plus petit si la résolution est plus élevée.</p>
<p>Il est donc important d’adapter la taille des éléments selon la résolution afin de maintenir une expérience tactile unique et agréable.</p>
<p><img src="http://blog.developpez.com/media/20022012-2-10.jpg" width="700" height="392" alt="" /></p>
<p>Windows effectue cette mise à l’échelle automatiquement selon 3 pourcentages : 100 %, 140 % et enfin 180 %. Pour un résultat optimal, il est conseillé de préférer les images vectorielles aux images bitmap. Quand ce n’est pas possible, il est recommandé de fournir 3 versions de chaque image, une version pour chaque niveau de mise à l’échelle (100%, 140% et 180% donc).</p>
<p><img src="http://blog.developpez.com/media/20022012-2-11.png" width="700" height="379" alt="" /></p>
<p><img src="http://blog.developpez.com/media/20022012-2-12.png" width="700" height="395" alt="" /></p>
<p>Enfin, signalons que si vous avez besoin de détecter la résolution de l’écran et ses éventuels changements, vous pouvez utiliser la propriété Bounds et l’évènement SizeChanged.</p>
<p><img src="http://blog.developpez.com/media/20022012-2-13.png" width="700" height="393" alt="" /></p>
<p><strong>Conclusion</strong><br />
Le design d’une application devient un élément aussi important que ses fonctionnalités. Le design ne se résume plus uniquement à donner un rendu visuel sympa à une application. Loin de là. Le design est l’étape nécessaire pour avoir une application agréable à utiliser en toute circonstance. Une application doit donc en prendre toutes les notions évoquées plus haut pour offrir une expérience utilisateur de qualité.</p>
<p>Bien entendu, chaque développeur ne peut pas s’approviser designer et toutes les entreprises ne vont pas embaucher une personne pour s’occuper uniquement de cet aspect. Mais même sans être designer, il est possible, en suivant certaines guidelines, d’avoir une application agréable à regarder et à utiliser. De ce point de vue, les applications Metro Style sont une aide non négligeable. Avec les diverses règles mises en place par Microsoft et l’apparition de nouveaux contrôles, il est en effet beaucoup plus aisé de réaliser une application au look sympa et ergonomiquement efficace.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment créer une application Metro Style optimisée pour le tactile</title>
		<link>https://blog.developpez.com/steven.hanquez/p10730/xaml/comment_creer_une_application_metro_styl</link>
		<comments>https://blog.developpez.com/steven.hanquez/p10730/xaml/comment_creer_une_application_metro_styl#comments</comments>
		<pubDate>Mon, 20 Feb 2012 16:07:51 +0000</pubDate>
		<dc:creator><![CDATA[Hathortos]]></dc:creator>
				<category><![CDATA[Metro Style Apps]]></category>
		<category><![CDATA[XAML]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Je vous propose aujourd&#8217;hui un second billet dédié à Windows 8 et aux applications Metro Style. Si vous ne l’avez pas encore fait, je vous invite à lire mon précédent article (« Comment faire une bonne application Metro Style ») en premier lieu. Nous allons donc nous intéresser de manière plus précise à la partie tactile des applications Metro Style en essayant de montrer comment tirer parti efficacement de ces nouvelles possibilités en matière d’interaction. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Je vous propose aujourd&rsquo;hui un second billet dédié à Windows 8 et aux applications Metro Style. Si vous ne l’avez pas encore fait, je vous invite à lire mon précédent article (« <a href="http://blog.developpez.com/steven.hanquez/p10297/xaml/metro-style-apps/comment-faire-une-bonne-application-metr/">Comment faire une bonne application Metro Style</a> ») en premier lieu.</p>
<p>Nous allons donc nous intéresser de manière plus précise à la partie tactile des applications Metro Style en essayant de montrer comment tirer parti efficacement de ces nouvelles possibilités en matière d’interaction.<span id="more-7"></span></p>
<p><strong>Une interface tactile nécessite t’elle un nouveau langage d&rsquo;interaction ?</strong></p>
<p><img src="http://blog.developpez.com/media/20022012-01.png" width="650" height="369" alt="" /></p>
<p>Voilà la question essentielle qui doit être posée et à laquelle Microsoft a tenté d&rsquo;apporter une réponse lors d&rsquo;une conférence de la Build 2011. Faisons tout d&rsquo;abord un état des lieux. On peut distinguer 3 types d’interfaces permettant une interaction avec l’utilisateur :</p>
<ul>
<li>Interface en ligne de commande : C’est l’interface la plus ancienne. L’utilisateur peut saisir des commandes sous formes de chaines de caractères et voit les résultats sous ce même format. C’est le clavier qui est utilisé pour interagir avec le système.</li>
<li>Interface graphique : L’interface en ligne de commandes a laissé place aux interfaces graphiques afin de s’ouvrir aux grands publics. Avec l’apparition des interfaces graphiques, un nouveau périphérique est apparu pour faciliter les interactions : la souris. Désormais, l’utilisateur peut utiliser son clavier pour saisir des commandes et sa souris pour effectuer diverses actions (sélectionner un élément, ouvrir, …).</li>
<li>Interface tactile : Cette interface est la plus récente. Ici, l’utilisateur interagit avec le système en touchant son écran, autrement dit l’interface. Dés lors, plusieurs questions doivent se poser. Comment sélectionner un élément (équivalent du clic) ? Comment l’ouvrir (équivalent du double clic) ? Comment faire un défilement (équivalent de la roulette) ? Ce sont ces questions qui doivent être résolues afin d’offrir une expérience tactile agréable et utile. Cela se traduit par l&rsquo;instauration d&rsquo;un nouveau langage d&rsquo;interaction.</li>
</ul>
<p><strong>Les objectifs du langage tactile sous Windows 8 :</strong><br />
Le langage tactile mis en place sous Windows 8 doit répondre à plusieurs objectifs :</p>
<ul>
<li>Etre simple et consistant : Ce nouveau langage doit être simple à assimiler et répondre à tous les besoins courants.</li>
<li>Faire appel à des gestes simples et limités : Les gestes à faire doivent être faciles à réaliser. Demander à l&rsquo;utilisateur de faire une manipulation excessivement compliquée nécessitant 3 doigts et des mouvements précis n&rsquo;a aucun intérêt !</li>
<li>Avoir des manipulations directes.</li>
<li>Avoir des interactions réversibles : Comme pour le glisser-déposer à la souris, l&rsquo;utilisateur doit pouvoir annuler son action jusqu&rsquo;au dernier moment.</li>
<li>Faire un usage limité des gestes chronométrés : Les gestes qui imposent des contraintes de temps doivent être évités ou utilisés au minimum.</li>
<li>Pas de mode : Votre application ne doit pas avoir une interface pour une utilisation tactile et une autre interface pour une utilisation à la souris.</li>
</ul>
<p>En conséquence, les commandes tactiles ne doivent pas être une simple transposition des commandes souris / clavier. Au contraire, elles doivent être utilisées de façon intelligente et intuitive afin d&rsquo;en tirer le meilleur.</p>
<p><strong>Les interactions tactiles de Windows 8 :</strong></p>
<p><img src="http://blog.developpez.com/media/20022012-07.png" width="650" height="366" alt="" /></p>
<ul>
<li>Swipe pour sélectionner : Comment sélectionner un ou plusieurs éléments en utilisant uniquement les doigts ? Microsoft propose le &laquo;&nbsp;Swipe&nbsp;&raquo;. Un &laquo;&nbsp;Swipe&nbsp;&raquo; est un léger glissement du doigt sur la surface de l&rsquo;écran. Pour sélectionner un ou plusieurs élément(s) (dans une liste par exemple), il suffit de poser le doigt dessus et de le faire glisser légèrement vers le bas. Un indicateur visuel permet de confirmer la sélection. Microsoft recommande d&rsquo;utiliser le &laquo;&nbsp;Swipe&nbsp;&raquo; pour effectuer une sélection. A ce titre, signalons que les composants tels que la ListBox ou la Grid implémentent par défaut cette commande.
<p><img src="http://blog.developpez.com/media/20022012-08.png" width="650" height="379" alt="" />
</li>
<li>Toucher et maintenir pour avoir des détails : Ce geste permet d&rsquo;afficher le Tooltip de l&rsquo;élément visé. Il suffit donc de placer le doigt sur l&rsquo;élément et de le laisser. A la souris, on réaliserait cette action en laissant le curseur sur l&rsquo;élément voulu.
<p><img src="http://blog.developpez.com/media/20022012-12.png" width="650" height="366" alt="" />
</li>
<li>Toucher brièvement pour effectuer une action primaire, comme ouvrir une application.</li>
<li>Faire glisser pour déplacer : Pour cette interaction, je me permets de m&rsquo;auto-citer en reprenant un exemple de mon précédent billet que je trouve très parlant.<br />
<blockquote><p>Sur l’interface Metro, l’utilisateur a la possibilité de réorganiser ses icones (nous verrons plus tard qu’il s’agit de Tiles en réalité) comme bon lui semble. A la souris, ce geste s’effectue simplement en cliquant sur l’icône désiré et en maintenant la pression tout en déplaçant l’icône à l’endroit voulu. Avec une interface tactile simplement calquée sur la version souris / clavier, l’utilisateur doit toucher l’icône désiré et faire glisser son doigts pour l’amener à l’endroit voulu. Comme la page d’accueil peut s’étendre en largeur, ce mouvement peut être long et fastidieux (comme le montre la démonstration).</p>
<p>Heureusement, le tactile permet d’aller beaucoup plus loin si on y réfléchit correctement. Dans la seconde démonstration, l’utilisateur a utilisé son autre main pour faire scroller la page d’accueil alors qu’il avait sélectionné l’icône avec son doigt. En combinant l’utilisation des deux mains d’une manière logique et naturelle, le déplacement d’un icône d’un côté à l’autre de la page d’accueil se révèle bien plus rapide.</p></blockquote>
</li>
<li>Pincer pour jouer avec le zoom : C&rsquo;est un mouvement bien connu des utilisateurs de Smartphone tactiles. En plaçant deux doigts sur l&rsquo;écran, on peut ainsi effectuer zoom en les écartant, ou, au contraire, dézoomer en les rapprochant. A noter que Microsoft parle de deux types de zoom dans les applications. On a tout d&rsquo;abord le zoom optique qui permet d&rsquo;agrandir une photo par exemple. Mais on parle également de zoom sémantique.
<p><img src="http://blog.developpez.com/media/20022012-14.png" width="650" height="367" alt="" /></p>
<p>Prenons l&rsquo;exemple d&rsquo;une Grid affichant les types de films disponibles dans une bibliothèque. On y trouverait donc des éléments tels que Science Fiction, Policier, Aventure ou encore Comédie. L&rsquo;utilisateur peut parfaitement sélectionner un élément, ce qui provoquera l&rsquo;affichage des films de cette catégorie. Mais on peut imaginer une autre manière de faire. En zoomant sur les éléments de la liste, l&rsquo;utilisateur peut ainsi &laquo;&nbsp;entrer&nbsp;&raquo; à l&rsquo;intérieur et en voir le contenu. En dézoomant, l&rsquo;utilisateur reviendra tout naturellement à la liste des types de films. On peut bien sur imaginer un nombre beaucoup plus important de niveaux de zoom. Notons que la transition entre chaque niveau se fait d&rsquo;une manière très naturelle. Au final, le zoom sémantique se révèle très agréable à utiliser. On le retrouve d&rsquo;ailleurs sur la fenêtre d&rsquo;accueil de Windows 8 contenant les fameux Tiles. En effectuant un zoom arrière, les Tiles se retrouvent regrouper par catégorie. L&rsquo;exemple ci-dessous montre l&rsquo;utilisation du zoom sémantique sur une application calendrier :</p>
<p><img src="http://blog.developpez.com/media/20022012-15.png" width="650" height="363" alt="" /></p>
</li>
<li>Swipe depuis les rebords de l’écran : Ce &laquo;&nbsp;Swipe&nbsp;&raquo; reprend le fonctionnement de celui pour sélectionner un élément sauf qu&rsquo;il doit être effectué sur un des rebords de l&rsquo;écran. En haut ou en bas de l&rsquo;écran, le Swipe permet de faire éventuellement apparaitre une barre d&rsquo;application contenant, par exemple, des commandes avancées.
<p><img src="http://blog.developpez.com/media/20022012-10.png" width="650" height="375" alt="" /></p>
</li>
<li>Effectuer une rotation. Il s’agit ici d’un mouvement classique qui permet, en posant deux doigts à la surface de l’écran, de faire tourner l’élément choisi en réalisant une rotation avec les doigts.</li>
</ul>
<p>En plus d’imposer un nouveau langage d’interaction, les interfaces tactiles amènent aussi quelques changements sur le plan visuel. La plupart de ces changements ont pour objectif d’améliorer l’expérience utilisateur et l&rsquo;ergonomie.</p>
<p><strong>Des commandes bien placées …</strong><br />
Une application tactile doit donc être facile d’utilisation. Pour cela, les commandes doivent être accessibles rapidement. A ce titre, il est important de connaitre la nature des appareils utilisés et la façon dont les utilisateurs vont s’en servir. Avec Windows 8, le panel des appareils est potentiellement assez diversifié : PC de salon, PC portable, notebook ou encore tablette. L’utilisation des tablettes imposent une réflexion quant au placement des commandes tactiles. En effet, l’utilisateur va tenir sa tablette par les côtés avec son pouce de chaque côté de l’écran et les autres doigts à l’arrière. Les pouces étant assez petits, leur champ d’action est plutôt faible.</p>
<p><img src="http://blog.developpez.com/media/20022012-03.jpg" width="650" height="366" alt="" /></p>
<p>Le schéma ci-dessus montre cela très clairement. Les zones en vert sont les parties accessibles très facilement par l’utilisateur en toute circonstance. En jaune, on retrouve les zones un peu plus éloignées mais toujours utilisables. Les zones en rouge représentent quant à elle les limites du champ d’action du pouce. Au delà de ces zones, l’utilisateur n’aura pas d’autre choix que de changer sa manière de tenir sa tablette (en la tenant à une main par exemple). Il est vivement recommandé de concentrer les commandes de ses applications dans les zones accessibles. Obliger l’utilisateur à changer la position de ses mains n’est pas une bonne chose (sauf pour l’utilisation de commande avancée ou pour certaines interactions comme le zoom, les rotations, …).</p>
<p><img src="http://blog.developpez.com/media/20022012-05.jpg" width="650" height="366" alt="" /></p>
<p><strong>… et espacées</strong><br />
Toujours dans le même but, il est nécessaire de revoir la taille des boutons et autres éléments pouvant être manipulés avec le doigt de l’utilisateur. En effet, un doigt est inévitablement moins précis qu’un pointeur de souris. Il est impossible de cibler un pixel précisément avec son doigt par exemple.</p>
<p><img src="http://blog.developpez.com/media/20022012-02.png" width="650" height="385" alt="" /></p>
<p>Le graphique ci-dessous montre la corrélation entre la taille des objets et le nombre d’erreurs produites. Comme on peut s’en douter, plus un objet est gros, moins le risque d’erreur sera élevé. Ainsi, un élément (bouton, item dans une liste, …) de 11 mm provoquera un taux d’erreur de 1/1000, ce qui est très faible. En réduisant à 9 mm, le taux passe à 1/100, ce qui reste encore largement acceptable. A partir de 7 mm, le taux atteint 1/25. Au delà, le nombre d’erreurs augmente de manière exponentielle !</p>
<p><img src="http://blog.developpez.com/media/20022012-18.png" width="650" height="367" alt="" /></p>
<p>Devant ce constat, Microsoft apporte un certain nombre de recommandations. La taille recommandée est de 7&#215;7 mm. Pour une précision idéale, la taille optimisée est de 9&#215;9 mm. Enfin, pour des éléments petits, la taille optimisée est de 5&#215;5 mm. Il est déconseillé d’aller en dessous de cette taille.</p>
<p><img src="http://blog.developpez.com/media/20022012-19.png" width="650" height="368" alt="" /></p>
<p>Un autre élément à prendre en compte est l’espacement entre les objets. Il est impératif de respecter une marge de 2 mm entre chaque objet manipulable tactilement. En dessous, les erreurs de manipulation seront trop fréquentes.</p>
<p>Dans un prochain article, nous détaillerons les différents types d’affichage d’une application Metro Style (portrait, paysage, filled, snaped, …).</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment faire une bonne application Metro ?</title>
		<link>https://blog.developpez.com/steven.hanquez/p10297/xaml/metro-style-apps/comment_faire_une_bonne_application_metr</link>
		<comments>https://blog.developpez.com/steven.hanquez/p10297/xaml/metro-style-apps/comment_faire_une_bonne_application_metr#comments</comments>
		<pubDate>Sun, 18 Sep 2011 16:56:51 +0000</pubDate>
		<dc:creator><![CDATA[Hathortos]]></dc:creator>
				<category><![CDATA[Metro Style Apps]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Comme vous le savez surement si vous avez suivi l’actualité ces derniers jours, Microsoft a présenté lors de la BUILD 2011 son nouveau système d’exploitation, Windows 8. Durant cet évènement, Microsoft a présenté un grand nombre de conférences dévoilant en détails les différents aspects des applications Metro. Une de ces conférences était destinée à expliquer les aspects essentiels (règles, bonnes pratiques) à la réalisation d’une « bonne » application Metro. Je vous propose donc un [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Comme vous le savez surement si vous avez suivi l’actualité ces derniers jours, Microsoft a présenté lors de la BUILD 2011 son nouveau système d’exploitation, Windows 8.</p>
<p>Durant cet évènement, Microsoft a présenté un grand nombre de conférences dévoilant en détails les différents aspects des applications Metro. Une de ces conférences était destinée à expliquer les  aspects essentiels (règles, bonnes pratiques) à la réalisation d’une « bonne » application Metro. Je vous propose donc un petit résumé des informations données durant cette présentation très  intéressante et riche d’enseignement.<br />
<span id="more-6"></span></p>
<p><strong>Un design « Metro Style »</strong><br />
Avec Windows 8, Microsoft a réutilisé le design déjà arboré sous Windows Phone 7 et connu sous le nom de Metro. Le style Metro se veut le plus minimaliste possible. L’information est au centre et tout ce qui n’est pas utile n’a pas besoin d’être montré. Il faut que les écrans soient clairs et fassent une place de choix au contenu.</p>
<p>Pour cela, Visual Studio 11 met à la disposition des développeurs un certain nombre de templates permettant de répondre à une grande variété d’utilisation. Microsoft recommande vivement l’utilisation de ces templates afin que les applications soient en harmonie avec l’environnement de Windows 8. Bien entendu, il est possible de personnaliser les templates afin de leur donner un look unique.</p>
<p>Une application Metro Style doit laisser libre les côtés gauche et droit de l’écran. En effet, ces espaces sont utilisés par le système pour revenir à l’application précédente et pour accéder à une barre d’outils. Il est donc nécessaire de laisser une marge de chaque côté de vos écrans afin de ne pas entraver le fonctionnement du système.</p>
<p><img src="http://blog.developpez.com/media/1_01.jpg" width="650" height="365" alt="" /></p>
<p>A l’inverse, les parties en haut et en bas de l’écran sont réservées à votre application. Il est donc conseillé de les utiliser pour permettre, par exemple, d’afficher des commandes avancées.</p>
<p><img src="http://blog.developpez.com/media/1_02_01.jpg" width="650" height="366" alt="" /></p>
<p>Les points essentiels à retenir sont :</p>
<ul>
<li>Les commandes principales, importantes et utilisées fréquemment doivent apparaitre sur vos écrans directement.</li>
<li>Les autres commandes doivent être masquées et apparaitre sur demande de l’utilisateur dans les barres en haut et en bas de l’écran.</li>
</ul>
<p>Microsoft a ensuite évoqué l’importance d’avoir des commandes accessibles facilement. En effet, Windows 8 et vos applications sont susceptibles de fonctionner sur un grand nombre d’appareil dont des tablettes tactiles. Ces tablettes sont tenues par les utilisateurs par les côtés et les pouces servent la plupart du temps à accéder aux commandes tactiles. Etant donné la disposition des mains et la longueur des doigts, l’utilisateur n’a pas un accès immédiat à toutes les parties de l’écran.</p>
<p><img src="http://blog.developpez.com/media/1_04.jpg" width="586" height="366" alt="" /></p>
<p>Comme le montre la capture ci-dessus, les zones en vert sont celles de confort. L’utilisateur peut accéder à ces emplacements très facilement et sans le moindre gène. Celles en jaune et en rouge sont plus délicates à atteindre. Le reste de l’écran est inaccessible en tenant la tablette par les côtés et oblige l’utilisateur à changer la position de ses mains.</p>
<p>Forcer l’utilisateur à modifier la position de ses mains est une erreur ! Il est donc primordial de concentrer les commandes des applications dans les zones accessibles par les doigts de l’utilisateur.</p>
<p>Enfin, il a été rappelé que les applications Metro Style devaient être conçues pour une utilisation tactile. Bien entendu, l’utilisation d’une souris et d’un clavier doit être possible mais ne doit pas faire l’objet d’une interface séparée.</p>
<p><strong>Rapide et Fluide</strong><br />
Dans cette partie, Microsoft a rappelé l’importance d’avoir une application rapide et fluide. L’utilisateur ne doit pas avoir la sensation de blocage ou d’attente. L’application doit être réactive aux actions à tout moment, même lorsqu’un chargement est en cours.</p>
<p>L’utilisation d’animations est ainsi fortement recommandée. Une application fluide doit donner la sensation à son utilisateur que tout arrive de quelque part et va ensuite quelque part. Pour illustrer cela, une démonstration a été faite dans laquelle l’utilisateur pouvait ajouter des images à une liste en cliquant sur un bouton. Dans la version sans animation, les images apparaissaient d’un coup dans la liste, sans prévenir. Dans la seconde version avec des animations, les choses se faisaient de manière plus naturelle, donnant réellement l’impression que l’image qui était ajoutée venait de quelque part.</p>
<p><img src="http://blog.developpez.com/media/2_03.jpg" width="650" height="368" alt="" /></p>
<p>La présentation était ensuite accès sur l’importance des fonctions tactiles des applications Metro Style. Une interface tactile doit faire l’objet d’une véritable réflexion et ne doit pas être un simple transposage de l’interface classique à la souris / clavier.</p>
<p><img src="http://blog.developpez.com/media/2_04.jpg" width="650" height="366" alt="" /></p>
<p>Comme un exemple est toujours plus facile à comprendre qu’un long discours, une démonstration a été faite sur ce point très important. Sur l’interface Metro, l’utilisateur a la possibilité de réorganiser ses icones (nous verrons plus tard qu’il s’agit de Tiles en réalité) comme bon lui semble. A la souris, ce geste s’effectue simplement en cliquant sur l’icône désiré et en maintenant la pression tout en déplaçant l’icône à l’endroit voulu. Avec une interface tactile simplement calquée sur la version souris / clavier, l’utilisateur doit toucher l’icône désiré et faire glisser son doigts pour l’amener à l’endroit voulu. Comme la page d’accueil peut s’étendre en largeur, ce mouvement peut être long et fastidieux (comme le montre la démonstration).</p>
<p>Heureusement, le tactile permet d’aller beaucoup plus loin si on y réfléchit correctement. Dans la seconde démonstration, l’utilisateur a utilisé son autre main pour faire scroller la page d’accueil alors qu’il avait sélectionné l’icône avec son doigt. En combinant l’utilisation des deux mains d’une manière logique et naturelle, le déplacement d’un icône d’un côté à l’autre de la page d’accueil se révèle bien plus rapide.</p>
<p>Une interface tactile réussie doit répondre à de nombreux critères :</p>
<ul>
<li>Elle doit être simple.</li>
<li>Elle doit être rapide et fluide (le but n’est pas de perdre du temps).</li>
<li>Les mouvements doivent être limités.</li>
<li>Les manipulations doivent être directes.</li>
<li>Les manipulations doivent pouvoir être annulées à tout moment.</li>
<li>Il faut limiter l’utilisation de manipulations chronométrées.</li>
</ul>
<p><strong>Avoir une bonne mise à l’échelle</strong><br />
Comme nous l’avons déjà évoqué, vos applications peuvent être utilisées par des ordinateurs très différents (PC de salon, PC portable, notebook, tablette, …). Les écrans de ces appareils peuvent aller d’une taille de 10 pouces environ à 27 pouces, voire plus. La résolution peut varier de 1024*768 à plus de 1980*1080. Enfin, le format de l’écran peut être en 4/3 ou en 16/9. Il est donc impératif que vos écrans s’adaptent à la taille et à la résolution de l’écran de l’utilisateur.</p>
<p>Pour cela, il est recommandé d’utiliser des images au format vectoriel ou de les proposer dans 3 tailles différentes : 100, 140 et 180 %. Les templates proposés par Microsoft sont eux conçus pour s’adapter à toutes les tailles d’écran.</p>
<p>Notons également que vos applications doivent obligatoirement disposer d’une vue « Snap ». Comme le montre la capture d’écran, l’utilisateur a la possibilité de découper l’affichage de son écran en deux parties afin d’y afficher deux applications en même temps. On se retrouve alors avec une vue principale qui dispose de 70 % de l’écran environ. Les 30 % restants sont dédiés à la vue Snap.</p>
<p><img src="http://blog.developpez.com/media/3_00.jpg" width="650" height="365" alt="" /></p>
<p>La vue Snap ne doit pas être un simple redimensionnement de vos écrans mais doit faire l’objet d’une attention toute particulière afin de proposer une vue vraiment adaptée. On peut ainsi prendre l’exemple de l’application Tweet@rama. La capture d’écran ci-dessous montre l’application en mode plein écran et en mode Snap. Comme vous pouvez le voir, la vue Snap est différente de la principale et permet d’utiliser l’application pleinement avec un affichage optimisé. Ce point ne doit pas être négligé par les concepteurs d’applications.</p>
<p><img src="http://blog.developpez.com/media/3_03.jpg" width="650" height="300" alt="" /></p>
<p><strong>Utiliser les Contrats correctement</strong><br />
Les Contrats permettent de lier les applications entres elles, mais aussi avec le système dans sa globalité. Ainsi, si deux applications implémentent le même Contrat, elles pourront travailler ensemble pour accomplir des tâches.</p>
<p>On trouve de nombreux Contrats parmi lesquels Microsoft nous en a présenté 3 fondamentaux : Share, Search et Picker, qu’on pourrait traduire par Partager, Rechercher et Piocher. Voyons en détails le fonctionnement de ces 3 contrats.</p>
<ul>
<li>« Share » :</li>
</ul>
<p>Comme son nom le laisse entendre, le contrat « Share » permet à une application de partager des données avec d’autres applications. Le Partage fonctionne sur le principe source -> cible. Une application source est celle qui fournit quelque chose à partager. Une application cible est celle qui est susceptible de recevoir cette chose. Le contrat « Share » implémente un grand nombre de formats de données à échanger.</p>
<p>Imaginons par exemple que vous utilisez une application permettant de lire des news. Cette application implémente le contrat « Share ». Il est donc possible d’accéder à l’icône « Share » dans la barre de droite. En cliquant sur cette icone, vous verrez automatiquement toutes les applications qui implémentent également le contrat « Share » pour ce même type de données. En l’occurrence, nous pouvons ici sélectionner par exemple l’application Tweet@rama. Automatiquement, une petite fenêtre apparait permettant d’envoyer un tweet avec une url ciblant la news qu’on a partagé.</p>
<p><img src="http://blog.developpez.com/media/4_02.jpg" width="650" height="364" alt="" /></p>
<p><img src="http://blog.developpez.com/media/4_021.jpg" width="650" height="363" alt="" /></p>
<ul>
<li>« Search » :</li>
</ul>
<p>En implémentant le contrat « Search », vous offrez la possibilité aux utilisateurs d’effectuer une recherche dans les données de votre application à tout moment depuis l’interface de Windows 8. Microsoft recommande de privilégier ce fonctionnement au lieu de proposer un système de recherche à l’intérieur de vos applications.</p>
<p>A tout moment, il est donc possible via la barre de droite d’accéder à l’écran de recherche de Windows 8. Cette fenêtre de recherche fait apparaitre toutes les applications qui implémentent le contrat « Search ». En haut, un champ de saisie permet de préciser sa recherche. L’utilisateur peut ensuite sélectionner une application et voir automatiquement le résultat de sa recherche dans cette application. L’avantage pour l’utilisateur est qu’il peut basculer très rapidement entre toutes les applications qui implémentent le contrat pour voir les résultats dans chaque cas. C’est très rapide et intuitif.</p>
<p><img src="http://blog.developpez.com/media/4_031.jpg" width="650" height="366" alt="" /></p>
<ul>
<li>« Picker » :</li>
</ul>
<p>Terminons avec le contrat « Picker ». En implémentant ce contrat, votre application autorise les autres à piocher dans son contenu. Bien entendu, vous avez un accès total sur ce qui pourra être vu par les autres applications et comment cela sera affiché.</p>
<p>L’implémentation de ce contrat peut s’avérer utile si votre application stocke des fichiers qui sont susceptibles d’être utilisés dans un autre contexte, comme des images.</p>
<p><strong>Avoir un « Tile » de qualité</strong><br />
Les Tiles, qu’on pourrait traduire par Tuiles en français, sont la nouvelle manière de présenter et d’accéder aux applications dans Windows 8. Ils remplacent donc les traditionnels icônes. Mais la comparaison s’arrête là comme le rappelle Microsoft. En effet, les Tiles ne doivent pas être utilisés comme les icônes mais doivent être considérés comme une véritable extension de vos applications.</p>
<p><img src="http://blog.developpez.com/media/5_01.jpg" width="518" height="260" alt="" /></p>
<p>Ils ne sont pas juste un accès à vos applications. Ils peuvent faire bien plus. Par exemple, ils peuvent afficher des données précieuses comme la météo de votre ville. Ainsi, l’utilisateur a accès à l’information sans même ouvrir l’application Weather. Dans le cas d’une application Calendrier, le Tile peut afficher le détail du prochain rendez-vous. Pour une alarme, le Tile peut laisser apparaitre le détail de la prochaine alerte.</p>
<p><img src="http://blog.developpez.com/media/5_02.jpg" width="650" height="365" alt="" /></p>
<p>Les Tiles doivent utiliser un template fourni par Microsoft. Il est possible d’y afficher des données et des images. Deux tailles de Tile existent : petit et large. Seul le petit est obligatoire.</p>
<p>En plus du Tile principal de votre application, il est possible de mettre en place des Tiles secondaires. Ces Tiles peuvent être considérés comme des sortes de raccourcis rapides à un emplacement précis de votre application. Par exemple, un utilisateur peut désirer avoir un accès rapide au profil de son meilleur ami sur Socialite. Pour cela, il a la possibilité de créer un raccourci qui sera matérialisé sous la forme d’un nouveau Tile. En sélectionnant ce Tile, il arrivera directement à l’endroit ciblé.</p>
<p>Les Tiles secondaires permettent donc aux gens de pointer des zones et éléments clés de vos applications.</p>
<p><strong>Etre connecté et vivant</strong><br />
Les applications Metro peuvent rester actives grâce à deux procédés :</p>
<ul>
<li>Les « Live Tiles »</li>
<li>Les notifications</li>
</ul>
<p>Les Live Tiles sont des Tiles dans lesquels du contenu est affiché dynamiquement. Par exemple, le Tile de l’application Email peut faire apparaitre automatiquement le contenu du dernier email reçu. Une application dédiée aux photos peut utiliser son Tile pour faire apparaitre, à tour de rôle, les photos contenues dans les albums de l’utilisateur.</p>
<p><img src="http://blog.developpez.com/media/6_02.jpg" width="650" height="333" alt="" /></p>
<p>Les notifications permettent aux applications d’afficher brièvement un message d’information en bas à droite de l’écran. Là encore, les notifications doivent utiliser les templates proposés par Microsoft. Puisque l’utilisateur est susceptible de ne pas voir les notifications, il est conseillé de mettre également à jour le Tile pour afficher l’information.</p>
<p><img src="http://blog.developpez.com/media/6_05.jpg" width="650" height="365" alt="" /></p>
<p>Les Live Tiles et les Notifications fonctionnement selon la même architecture. Pour les mettre à jour, il existe 3 possibilités :</p>
<ul>
<li>En Local : Fonctionne uniquement quand l’application est en utilisation.</li>
<li>Programmé : Une mise à jour est effectuée à un moment précis.</li>
<li>Push : En utilisant WNS (Windows Push Notification Service), vous pouvez effectuer des mises à jour n’importe quand, même lorsque votre application n’est pas en fonctionnement.</li>
</ul>
<p><strong>Utiliser le « cloud »</strong><br />
Lorsque que vous retournez sur une application après un certain temps, il peut être intéressant de revenir à l’endroit exact ou vous étiez. Un peu comme si vous n’aviez jamais quitté l’application.</p>
<p>De même, si vous terminez le niveau d’un jeu, vous ne devriez pas devoir recommencer ce niveau, même si vous jouez à ce jeu sur un autre appareil.</p>
<p>Enfin, si vous changez un élément dans la configuration d’une application, vous ne devriez pas devoir refaire cette manipulation à nouveau, même si vous lancez cette application depuis un autre ordinateur.</p>
<p><img src="http://blog.developpez.com/media/7_03.jpg" width="650" height="364" alt="" /></p>
<p>Tout cela est possible grâce au Cloud ! En effet, si l’utilisateur se connecte à son appareil équipé de Windows 8 en utilisant son Windows Live ID, toutes les applications auront la possibilité de stocker des informations (préférences utilisateur, état, …) dans le Cloud.</p>
<p>Microsoft donne quelques exemples de données qu’il est intéressant de stocker :</p>
<ul>
<li>Préférences :
<ul>
<li>Ma ville préférée sur l’application Weather.</li>
<li>Mes abonnements RSS sur l’application News.</li>
</ul>
</li>
</ul>
<ul>
<li>Etats :
<ul>
<li>La page à laquelle je suis arrivé dans un livre.</li>
<li>Le dernier niveau terminé sur un jeu.</li>
<li>La dernière musique écoutée.</li>
</ul>
</li>
</ul>
<p>Pour les services additionnels et plus poussés, les développeurs ont la possibilité d’utiliser Windows Azure.</p>
<p><strong>Conclusion</strong><br />
Cette présentation fût l’occasion d’en apprendre beaucoup sur les applications « Metro Style », comme l’utilisation des Contrats ou le système de notifications. Bien entendu, nous reviendrons en détails sur les points les plus importants dans de futurs billets. En attendant, je vous invite fortement à regarder cette conférence en allant à <a href="http://channel9.msdn.com/Events/BUILD/BUILD2011/BPS-1004">cette adresse</a>.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
