[Techdays 2013] Session “Géolocalisation, Speech, Intégration : tirez parti des nouveautés de Windows Phone 8”

downloadCette session dédiée à WP8 et animée par Jean-Sébastien Dupuy, Julie Knibbe et Samuel Blanchard a été l’occasion de découvrir ou redécouvrir pour certains quelques fonctionnalités aussi pratiques qu’intéressantes pour le développement d’applications WP8.

Les contrôles

Les animateurs ont commencé par nous parler des (presque) nouveaux contrôles disponibles dans WP8.

Le LongListSelector : présent dans le Windows Phone Toolkit,  ce contrôle assure de meilleures performances que la listbox. Son utilisation est identique, il suffit de remplacer la balise.

  • Il permet une navigation via Grouped List ou Jump List pour un parcours plus agréable que celui d’une classique ListBox.

Quelques changement au niveau de WP8 :

  • LongListSelector, Pivot et Panorama désormais placés en ROM pour de meilleures performances
  • WebBrowser est basé sur Internet Explorer 10 (avec une meilleure gestion de HTML 5)
  • Mise à disposition de Windows Phone Toolkit (la dernière version datant d’octobre 2012)

Résolutions d’écran

WP8 dispose de deux résolutions, selon le téléphone :

  • WXGA (1260 x 768)
  • 720p (1260 x 760)

resolutions

Quelques conseils des animateurs concernant les résolutions :

  • Adaptez votre layout
  • Evitez de fixer les valeurs Width et Height
  • Privilégiez les Grid avec Auto et *
  • Graphiques : utilisez les images ciblant la résolution WXGA

Pour aller plus loin, voir App.Current.Host.Content.ScaleFactor.

Launchers & Choosers

Les launchers représentent le meilleur moyen d’interagir avec les fonctionnalités natives du téléphone telles que prendre une photo, ajouter un contact, etc…

Nouveaux launchers sous WP8

  • SaveAppointmentTask : lance l’application Calendar avec un nouvel évènement
  • ShareMediaTask : permet le partage via les réseaux sociaux
  • MapsTask : lance l’application Maps centrée sur la position de l’utilisateur
  • MapsDirectionsTask : lance l’application Maps avec une position de départ et une d’arrivée

Il faudra toutefois faire attention au “tombstoning”, la gestion des applications inactives par WP8.

Cartographie

Les nouveautés

nokia-mapsTout d’abord un changement d’API puisque WP8 introduit Windows Phone Runtime Location, avec entre autres les caractéristiques suivantes :

  • Convergence avec l’API Windows 8 Location, permettant la réutilisation d’une grande partie du code si on souhaite avoir une application compatible WP8 et Windows 8
  • Support de l’API Windows 7

Avant toute chose

Il est nécessaire de remplir deux conditions pour avoir le droit de parler aux Location APIs :

  • Le déclarer dans le manifest de l’application via ID_CAP_LOCATION
  • Demander l’accord de l’utilisateur

Où se cache mon utilisateur

Il existe deux types d’utilisations pour la géolocalisation :

  • Soit on souhaite connaître la position de l’appareil à un moment T, on utilisera alors simplement Geolocator.GetGeopositionAsync
  • Soit on souhaite faire du tracking, comme dans les applications de running, et à ce moment là on utilisera la classe Geolocator et les évènements PositionChanged et StatusChanged. Pensez à filtrer ces évènements avec la précision afin d’avoir un tracking précis

Contrôler les sources utilisées

Il n’est pas possible de choisir la source, GPS ou autre. On pourra cependant utiliser  la propriété DesiredAccuracy (high, default), ou DesiredAccuracyInMeters. Dans tous les cas nous n’aurons pas la main sur le choix des sources.

Etat dormant

Avec WP8 il existe nouvel état de l’application : RunningInBackground. L’application tournera en tâche de fond tant que le tracking sera actif.

Afficher une carte dans WP8

  • Données Nokia : 110+
  • Cartes offline : Launchers MapDownloader/MapUpdater

Calcul d’itinéraires / Geocodage

On notera la dépréciation de l’ancien Bing Map Control.

ColorMode

Enfin, on pourra définir un mode de couleur (Ligh/Dark) selon le besoin.

Text2Speech

Les bases

Avant tout, pour mettre Text2Speech en place, il faut ajouter le paramètre D_CAP_SPEECH_RECOGNITION au Manifest. Ensuite on utilisera la classe SpeechSynthesizer et la méthode SpeakTextAsync pour lire le texte passé en paramètre.

Vous aurez remarqué que la méthode a le suffixe Async, indiquant de l’asynchronisme. Un mécanisme de mise en queue est mis en place de façon à ce que les messages soit lus les uns après les autres.

Concernant les langues, la classe InstalledVoices contient la méthode SetVoice permettant de définir la langue et le genre. Attention cependant, les langues autres que celle du téléphone sont à installer manuellement.

Avancé

On peut utiliser SSML (Speech Synthesis Markup Language), un language à balise, afin de changer le rendu.

Mise en place

Le SSML comporte un certain nombre de balises dont les quatre qui ont été présentées sont :

  • Header <speak>
  • Tag <voice /> : permet de définir la langue utilisée
  • Tag <prosody /> : contrôle les aigus, le volume et la vitesse de diction
  • Tag <audio /> : permet l’utilisation de fichiers wav

Speech Recognition

Les bases

Tout d’abord il faut être conscient que la reconnaissance vocale nécessite internet. Comme pour le Text2Speech, le SpeechRecognition s’active à l’aide du Manifest et de l’option D_CAP_SPEECH_RECOGNITION.

Il faudra également l’autorisation d’utiliser le microphone, le réseau et le speech_recognition.

Deux modes sont disponibles :

  • Avec boîte de dialogue en utilisant SpeechRecognizerUI
  • Sans boîte grâce à SpeechRecognizer

On pourra récupérer les langues et genres installés sur l’appareil à l’aide de la classe InstalledSpeechRecognizers.

Au final, on obtient une chaîne de caractères et un indice de confiance qui a les valeurs suivantes :

  • High
  • Low
  • Medium
  • Rejected

Avancé

On peut gérer la grammaire de son application de différentes façon à l’aide de :

  • FromPredefinedType
  • FromList
  • FromUri

AppToApp

Les applications sous WP8 sont capables d’interagir entre elles via des URI ou des extensions de fichier. C’est ainsi qu’une image dans un mail s’ouvre avec telle ou telle application. Cette fonctionnalité sert également à utiliser le NFC.

On pourra, dans le Manifest, à l’aide des balises Extensions et Protocol, définir les extensions de fichier et les protocoles supportés.

On pourra également passer des Uri précédées de /protocole pour lancer des applications tierces. On utilisera la classe UriMapper pour router l’URI et l’évènement OnNavigatedTo pour traiter l’URI.

Pour conclure

Cette session présentée par trois experts a été l’une de mes préférées. Riche en contenu et ludique, elle montre de manière efficace le grand nombre de concepts, plus ou moins nouveaux, qui peuvent être explorés pour créer de nouvelles applications plus riches et plus performantes.

Pour aller plus loin

Nombre de vue : 19

COMMENTAIRES 3 commentaires

  1. […] Retrouvez l’intégralité de cet article dédié à Windows Phone 8 sur le blog de So@t : http://blog-rec.soat.fr/2013/02/techdays-2013-session-geolocalisation-speech-integration-tirez-parti-d… […]

  2. Jérôme OUDOUL dit :

    Merci pour cet article récapitulatif.
    (session que j’ai suivie également)

    Une petite erreur je pense dans “Où se cache mon utilisateur” : le 3ème item de la bullet list répète le 1er.

  3. Didier Menut dit :

    Merci pour ce retour, c’est corrigé 🙂

AJOUTER UN COMMENTAIRE