Windows Embedded 8 « Application launcher »

Windows Embedded 8 intègre une nouvelle fonctionnalité appelée “Windows 8 Application Launcher”. Elle permet de verrouiller un poste sur une seule application Modern UI et peut donc s’avérer intéressante pour la mise en place de bornes (services, commerces) ou d’autres systèmes interactifs. Concrètement, l’application est lancée automatiquement à l’ouverture de session et, après quelques réglages, il n’est pas possible pour l’utilisateur d’en sortir.

L’application launcher doit être activé à l’avance via ICE que nous présentions précédemment. Après l’avoir ajouté depuis la catégorie Branding, quatre paramètres sont configurables.

ICE AppLauncher

  • AppUserModelId : Ce code identifie l’application à lancer. Il est récupérable en installant l’application en question sur un poste puis en cherchant « AppUserModelId » dans sa base de registre. Il suffit ensuite de copier la valeur correspondante au bon package.

Registry AppLauncher

  • DefaultReturnCodeAction : Cet entier indique quelle action doit être entreprise par le système si l’utilisateur ferme l’application
    • 0 : Redémarre l’application
    • 1 : Redémarre le système
    • 2 : Arrête le système
    • 3 : Ferme l’application launcher et retourne sur le Start Screen
    • 4 : Ferme la session
  • CustomReturnCodeAction : Permet de choisir une action différente à entreprendre suivant le code de retour de l’application (en cas d’erreur etc.).
  • UserSettings : Permet de spécifier les trois paramètres précédent pour un utilisateur donné.

L’application launcher seul ne suffit pas à réaliser une borne sécurisée. Il n’empêche pas l’utilisateur de retourner sur le Start Screen et d’utiliser le système d’exploitation comme bon lui semble. Il est donc intéressant de le coupler avec d’autres fonctionnalités de Windows Embedded 8.

  • Le Gesture Filter permet de verrouiller les « bords » de l’écran, autrement dit les barres de Charms et la fermeture d’une application par le haut. Son paramètre DisabledEdges est un entier qui doit être composé suivant les gestures que l’on souhaite désactiver. Un coup d’oeil à l’aide permet de déterminer qu’il faut entrer 247 pour verrouiller tout sauf la barre du bas (qui peut être utile à l’application).

GestureFilter

  • Le Keyboard Filter permet quant-à lui de désactiver certaines touches ou combinaisons de touches qui permettraient autrement à l’utilisateur de sortir de l’application.

Une fois le système installé, il faut tout d’abord créer un nouvel utilisateur. L’Application Launcher sera en effet désactivé sur le premier compte administrateur. Il suffit ensuite d’installer l’application (voir l’article traitant du sideloading) et de rouvrir la session pour se retrouver en mode borne.

En couplant les trois fonctionnalités sus-nommées, et en y ajoutant eventuellement des GPO (stratégies de groupe), il est donc possible de réaliser une borne verrouillée sur une application Modern UI. L’Application Launcher lance l’application à l’ouverture de la session Windows, tandis que les deux autres sécurisent la machine.

Une vidéo de démonstration de l’Application Launcher est disponible sur MCNEXT TV.

Sideloading d’une application Windows 8 Modern UI

Généralement les applications Windows 8 Modern UI sont installées à partir du Windows Store, système prévu par Microsoft à cet effet. Cette méthode n’est cependant pas universelle et ne convient pas dans certains cas, comme par exemple :

  • Lorsque l’application ne passe pas la validation requise par Microsoft
  • Lorsque l’application doit rester dans un cadre privé ou celui d’une entreprise
  • Lorsque le Windows Store n’est pas disponible sous l’environnement considéré, ce qui est le cas pour Windows 8 Embedded

Ce n’est en réalité pas l’installation en elle-même qui pose problème, mais l’exécution qui sera par défaut verrouillée si le package n’a pas été installé via le Store.

sideloading ko

Le fait d’autoriser cette exécution sera alors appelé « sideloading ». Il existe pour cela quatre méthodes qui dépendent du système d’exploitation et du contexte.

// Sideloading via une licence développeur (tous systèmes Windows 8)

La manière la plus basique de réaliser du sideloading est de passer par une licence de développeur. Il est possible, pour un développeur Modern UI, de créer un package (.appx) de test de son application. Le script d’installation activera alors une licence dite « développeur » et autorisera le sideloading sur le poste de travail.

Cette méthode, bien que pratique, gratuite et rapide, n’est mise à disposition par Microsoft qu’à des fins de tests. Son utilisation dans un cadre de production n’est pas autorisée.

licence dev w8

// Sideloading par clé d’activation (tous systèmes Windows 8)

Microsoft souhaite promouvoir son Store et contrôler ainsi le parc d’applications disponibles sous Windows 8. L’éditeur permet toutefois de débloquer totalement le sideloading sur un poste de travail via l’activation d’une clé spécialement prévue à cet effet.

Cette clé est vendue sous le nom de code « J7S-00005 » à environ 30$ par clé (par packs de 100 uniquement pour le moment !). Elle s’active par simple appel à l’outil de licensing intégré.

slmgr.vbs /ipk <sideloading product key>
slmgr.vbs /ato ec67814b-30e6-4a50-bf7b-d55daf729d1e

Cette solution est efficace et radicale, mais le montant total pour un parc informatique peut s’avérer élevé.

// Sideloading par contrôleur de domaine (Windows 8 Enterprise + Server 2012)

Sous certaines conditions, le déploiement d’une application Modern UI dans le cadre d’une société est facilité. Le sideloading sera ainsi activé sur un poste lorsque celui-ci dispose de Windows 8 version Enterprise et s’il est connecté à un domaine.

Windows 8 Enterprise peut donc s’avérer intéressant pour les sociétés désirant disposer d’applications privées.

// Sideloading par validation alternative (Windows 8 Embedded)

Windows Store n’est pas disponible sous Windows 8 Embedded. Microsoft a indiqué qu’un système de validation similaire à celui du Store permettrait d’obtenir un package qui ne nécessite pas de sideloading en particulier.

Les prérequis pour ce type d’applications seront du même niveau d’exigence que ceux des applications destinées au Store, selon une discussion récente. Il y a cependant peu d’informations concernant cette méthode à l’heure actuelle.

Animations, transitions, et mise en place du charme de partage dans les applications Metro en HTML et Javascript

Dans cette série sur la réalisation de l’application Metro « Parle moi de… » en HTML et Javascript, nous avons vu :

Les animations et les transitions permettent de donner vie à l’application, et de donner un ressenti plus organique lors de la manipulation de l’application. C’est particulièrement important dans les applications tactiles car c’est un contexte dans lequel les applications peuvent paraître « cassées » lorsqu’elles ne sont pas assez réactives. Nous allons aborder dans ce webcast les différentes façon de gérer ces transitions et ces animations pour les applications Metro en HTML et Javascript. Une fois de plus, l’API WinJS fournie par Microsoft comporte tout une API qui va nous pouvoir nous aider. Si vous maîtrisez des librairies javascript comme jQuery, vous pourrez également les mettres à contribution, de la même façon que sur vos sites web. Une dernière façon de donner vie à vos écrans peut être d’utiliser directement les transitions CSS3.

Une autre façon de donner plus de vie à votre application est de permettre de partager son contenu. Pour ce faire, Windows propose le charme de partage. Grâce à ce charme, vos utilisateurs peuvent partager vos contenus vers d’autres applications, comme par exemple les applications de Contact (pour partager dans Facebook, Twitter, …), ou Courrier (pour envoyer ces informations par mail). Nous allons donc vous présenter comment implémenter le charme de partage dans votre application.

Dans le prochain épisode de cette série, nous verrons les étapes à respecter pour publier votre application dans le Windows Store.

Préférences et stockage local dans les applications Metro en HTML et Javascript

Dans cette série sur la réalisation de l’application Metro « Parle moi de… » en HTML et Javascript, nous avons vu

Parmis les charmes proposés dans Windows 8, nous avons le charme de paramètres. Il permet à l’utilisateur d’accéder aux paramètres de l’application, ainsi qu’aux paramètres du système. Dans vos applications Metro, les écrans de préférences et de paramétrage de l’application doivent être accessibles à travers le charme de paramètres (cela fait partie des points vérifiés lors de la certification dans le store). C’est également un bon endroit pour mettre votre fenêtre « A propos » si vous souhaitez en mettre une, ou pour mettre un lien sur l’aide. Dans les applications en HTML et Javascript, nous disposons d’un contrôle SettingsFlyout qui va nous permettre d’implémenter des écrans de préférence. Nous allons voir comment ajouter un lien dans le charme de paramètres, et comment réaliser un écran avec le contrôle SettingsFlyout.

Si vous proposez un écran de préférences, il faudra également stocker les choix de l’utilisateur pour pouvoir les réutiliser. Nous allonc donc également voir comment stocker ces préférences en local. Nous verrons aussi comment bénéficier du roaming, afin d’utiliser ces préférences sur les différents ordinateurs associés à un utilisateur.

Dans le prochain épisode, nous verrons comment ajouter des animations pour améliorer les transitions et le ressenti utilisateur, et comment implémenter le charme de partage.

Gestion des résolutions d’écran et des états visuels dans les applications Metro en HTML et Javascript

Dans cette série sur la réalisation de l’application Metro « Parle moi de… » en HTML et Javascript, nous avons vu

Nous allons maintenant voir la gestion des résolutions d’écran et des états visuels de l’application.

Windows 8, bien que résolument tactile, reste Windows. Il n’y a donc pas de résolution d’écran fixée. La résolution minimale supportée est de 1024 pixels, mais il est fréquent aujourd’hui de trouver des écrans en 1920px, y compris sur des portables, et on commence à voir apparaitre des écrans avec des résolutions beaucoup plus importantes.

Par ailleurs, une application Metro peut être dans différents états visuels, correspondant à l’ergonomie de cette nouvelle génération de Windows. L’application peut être affichée au format portrait ou paysage, mais elle peut aussi être en mode « snap », c’est à dire qu’elle est affichée côte à côte avec une autre application. On a dans ce cas une application « snappée » (avec un espace de 320 pixels), et une application « filled » qui occupe le reste de l’espace. Le fait de « snapper » des applications n’est accessible que si votre terminal est en orientation paysage, et que votre écran à une résolution d’au mois 1366 pixels.

Votre application Metro doit impérativement gérer ces différentes résolutions, ainsi que les états visuels (il n’est pas possible pour l’application de refuser de se « snapper »), sous peine d’être refusée dans le processus de certification dans le store.

Nous allons donc voir comment gérer ces paramètres en utilisant les mediaqueries de CSS3, ou à travers l’API javascript.

Dans le prochain épisode de cette série, nous verrons comment utiliser le charme de paramètres et comment stocker des données en local.

Multilangue dans les applications Metro en HTML et Javascript

Jusqu’ici, nous avons découvert comment mettre en place notre projet, puis comment tirer parti du charme de recherche et des contrôles comme la ListView pour notre application « Parle moi de… »

Dans ce 3e épisode, nous allons voir comment rendre notre application multilangue en Français et en Anglais.

Lorsqu’on souhaite tirer parti du multilangue dans une application Metro, il faut prendre différents aspects en compte. Nous allons évidemment vouloir traduire les textes utilisés. Nous allons aussi avoir besoin de changer certaines images selon la langue, à commencer par l’icone de notre application, l’écran de démarrage, le logo etc. Nous allons également avoir besoin de fournir des traductions pour les méta données de notre application comme par exemple son titre ou sa description, et déclarer les différentes langues gérées par notre application. Le but étant que les utilisateurs puissent avoir cette information lorsqu’ils consulteront notre application dans le magasin d’applications Windows.

Dans le prochain épisode, nous verrons comment gérer efficacement les différentes résolutions d’écran et comment gérer les différents états visuels de notre application.

Charme de recherche, ListView et Zoom sémantique dans les applications Metro en HTML et Javascript

Dans le précédent épisode de cette série, nous avons créé le projet pour l’application « Parle moi de… ». Dans ce second épisode, nous allons aborder différents aspects essentiels à notre application. Nous allons tout d’abord intégrer le charme de recherche, afin de pouvoir lancer des recherches depuis Windows.

Nous allons ensuite découvrir l’utilisation d’éléments de base des applications Metro en HTML comme l’utilisation des templates et du binding. Nous appliquerons ces concepts dans l’utilisation du contrôle de liste (ListView) pour afficher le résultat de la recherche. Ce contrôle est essentiel dans les applications de style Metro car il vous permet d’afficher une liste d’éléments sous la forme de tuiles. Dans les applications Metro en HTML et Javascript, ce contrôle ListView permet d’afficher les éléments soit sous la forme d’une grille (dans l’esprit de l’écran de démarrage Windows 8), soit sous la forme d’une liste (plus traditionnelle).

Pour terminer, nous approfondirons ces concepts en mettant en place le zoom sémantique à partir de la liste. Le but du zoom sémantique est de proposer une vue sémantiquement différente de la liste. L’utilisation typique est de fournir une vue des regroupements de données utilisés, et de permettre ainsi un système de « Jump-List » entre ces regroupements. En mode tactile, cette fonctionnalité est déclenchée par la gesture de zoom, d’où le terme de zoom sémantique.

 

Dans le prochain épisode, nous verrons les différentes étapes pour rendre notre application multilangue.