Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

52
Donnez votre avis ! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les TechDays http://notes.mstechdays.fr

description

Windows Phone regorge d’APIs pour vous simplifier la vie et intégrer au mieux votre application dans le système. Si vous entendez que quelques lignes suffisent pour enregistrer un rendez-vous dans le calendrier de votre utilisateur, vous ne rêvez pas ! Nous ferons le tour des différents services à disposition pour créer facilement une belle expérience dans votre application : Géolocalisation, Cartographie, intégration dans les contacts, App to App, Speech, etc.

Transcript of Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Page 1: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Donnez votre avis !Depuis votre smartphone, sur : http://notes.mstechdays.fr

De nombreux lots à gagner toutes les heures !!!

Claviers, souris et jeux Microsoft…

Merci de nous aider à améliorer les TechDays

http://notes.mstechdays.fr

Page 2: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Géolocalisation, Speech, Intégration

Tirez parti des nouveautés de Windows Phone 8

Phone / mobilité

Samuel BlanchardWindows Phone MVP - Naviso

@samoteph

Julie KnibbeTechnical Evangelist - Microsoft France

@julieknibbe

Jean-Sébastien DupuyTechnical Evangelist - Microsoft France

@dupuyjs

Page 3: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

AGENDATirez parti des nouveautés de Windows Phone 8

Phone

Page 4: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

Trucs et astuces pour rendre votre application Windows Phone 8 plus visibleMardi 12 février : 16h00-17h00 (niveau : 200)

Plus près, plus près… NFC et la communication à proximité dans Windows 8 et Windows Phone 8Jeudi 14 février : 14h30-15h30 (niveau : 200)

Quelles sont les autres nouveautés ?

Page 5: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

De quoi parle cette session?

Text To Speech

Reconnaissance Vocale

Communication App To App

Contrôles, Résolutions

Launchers

Cartographie

Page 6: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

CONTRÔLESTirez parti des nouveautés de Windows Phone 8

Phone

Page 7: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

LongListSelector

Tirez parti des nouveautés de Windows Phone 8

• Utilisez LongListSelector en lieu et place du ListBox– Mêmes fonctionnalités mais

meilleures performances• Les bénéfices additionnels

– Grouped Lists (IsGroupingEnabled)– Jump List pour faciliter le

déplacement entre les groupes, même comportement que le Contact Hub

Page 8: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

demoCONTRÔLESLongListSelector

Tirez parti des nouveautés de Windows Phone 8

Page 9: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

Contrôles

• LongListSelector, Pivot et Panorama placés en ROM– Amélioration globale des performances– Empreinte mémoire du Panorama plus réduite

• Le contrôle WebBrowser repose désormais sur Internet Explorer 10– Supporte HTML5

• Windows Phone Toolkit (Octobre 2012)– Téléchargez WPToolkit depuis NuGet– Contrôles PhoneTextBox, HubTile, …

Page 10: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

RÉSOLUTIONS D’ÉCRANTirez parti des nouveautés de Windows Phone 8

Phone

Page 11: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Résolutions d’écran

Tirez parti des nouveautés de Windows Phone 8

WVGA800 x 48015:9

WXGA1280 x 76815:9

720p1280 x 72016:9

Page 12: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

• Adaptez votre Layout !!– Evitez de fixer les valeurs des propriétés Width et

Height, attention aux alignements et marges– Privilégiez l’utilisation des Grilles et des formats * et Auto

• Graphiques– Utilisez les images ciblant la résolution WXGA, le

téléphone adapte correctement ce format en fonction de la résolution

– Pour allez plus loin, App.Current.Host.Content.ScaleFactor pour charger les graphiques appropriés

Résolutions d’écran

Page 13: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

Résolutions d’écranpublic enum Resolutions { WVGA, WXGA, HD720p };

public static class ResolutionHelper{

private static bool IsWvga { get { return App.Current.Host.Content.ScaleFactor == 100; } } private static bool IsWxga { get { return App.Current.Host.Content.ScaleFactor == 160; } } private static bool Is720p { get { return App.Current.Host.Content.ScaleFactor == 150; } }

public static Resolutions CurrentResolution { get {

if (IsWvga) return Resolutions.WVGA; else if (IsWxga) return Resolutions.WXGA; else if (Is720p) return Resolutions.HD720p; else throw new InvalidOperationException("Unknown resolution"); } } }

Page 14: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

Résolutions d’écranusing System.Windows.Media.Imaging;

public class MultiResImageChooserUri{ public Uri BestResolutionImage { get { switch (ResolutionHelper.CurrentResolution) {

case Resolutions.HD720p: return new Uri("Assets/MyImage.screen-720p.jpg", UriKind.Relative); case Resolutions.WXGA: return new Uri("Assets/MyImage.screen-wxga.jpg", UriKind.Relative); case Resolutions.WVGA: return new Uri("Assets/MyImage.screen-wvga.jpg", UriKind.Relative); default: throw new InvalidOperationException("Unknown resolution type"); } } }}

Page 15: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

LAUNCHERS & CHOOSERSTirez parti des nouveautés de Windows Phone 8

Phone

Page 16: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

• Meilleur moyen d’interagir avec les fonctionnalités natives du téléphone, ils permettent d’effectuer des tâches comme :– Prendre une photo– Ajouter un contact– Envoyer un Mail ou un SMS– Etc…

• Nouveaux Launchers sous Windows Phone 8 :– SaveAppointmentTask : Ajout d’un nouveau rendez-vous dans le calendrier.– ShareMediaTask : Partagez vos medias !– MapsTask : Cherchez les points d’intérêts autours de vous !– MapsDirectionsTask : Perdu ? Obtenez votre itinéraire …

Et MapDownloaderTask, MapUpdaterTask dans la suite du programme.

• Attention au Tombstoning

Nouveaux Launchers

Page 17: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

demoLAUNCHERS

Tirez parti des nouveautés de Windows Phone 8

Page 18: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

CARTOGRAPHIETirez parti des nouveautés de Windows Phone 8

Phone

Page 19: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

• Nouvelle API Windows Phone Runtime locationConvergente avec l’API Windows 8 location – API Windows Phone 7.1 supportées

– System.Device.Location.GeoCoordinateWatcher et autres

Les nouveautés en Géolocalisation

Page 20: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

2 conditions pour avoir le droit de parler aux Location API :• Le déclarer dans le manifest de l’application :

ID_CAP_LOCATION• Demander l’accord de l’utilisateur

Avant toute chose…

20

Page 21: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

• Connaître la position du téléphone juste une fois : Geolocator.GetGeopositionAsync

• Tracker les changements de position :Geolocator.PositionChanged && Geolocator.StatusChanged

Où se cache mon utilisateur ?

Page 22: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

• No possiblo• Utilisez la propriété DesiredAccuracy du

Geolocator (high / default) ou DesiredAccuracyInMeters

• Dans tous les cas, c’est lui qui décide

Contrôler les sources utilisées ?

04/14/2023 ‹#›

+ Accuracy- Power- Speed- Indoors

- Accuracy+ Power+ Speed- Wilderness +/- Accuracy

+/- Power+/- Speed+/- Urban areas

GPSWiFi

Page 23: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

Localisation 1 Shot avec GetGeopositionAsync private async void OneShotLocation_Click(object sender, RoutedEventArgs e) { Geolocator geolocator = new Geolocator(); geolocator.DesiredAccuracyInMeters = 50; try { Geoposition geoposition = await geolocator.GetGeopositionAsync( maximumAge: TimeSpan.FromMinutes(5), timeout: TimeSpan.FromSeconds(10) ); LatitudeTextBlock.Text = geoposition.Coordinate.Latitude.ToString("0.00"); LongitudeTextBlock.Text = geoposition.Coordinate.Longitude.ToString("0.00"); } catch (UnauthorizedAccessException) { // the app does not have the right capability or the location master switch is off StatusTextBlock.Text = "location is disabled in phone settings."; }}

Page 24: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

demoTirez parti des nouveautés de Windows Phone 8 26

Page 25: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

• Un nouvel état de l’application : RunningInBackground

• Actif tant que l’application continue de tracker la position

Votre application passe à l’état Dormant, so what?

running

deactivated

suspended

activated

tombstoned

Activa

ted

deactivated

Deactivated

Running in bckgd

Page 26: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

• Arrêter tout ce qui ne concerne pas la localisation• Ne pas toucher à l’UI (ça sert à rien)

Que faire dans cet état ? (RunningInBackground)

<Application.ApplicationLifetimeObjects> <!--Required object that handles lifetime events for the application--> <shell:PhoneApplicationService Launching="Application_Launching" Closing="Application_Closing“ Activated="Application_Activated" Deactivated="Application_Deactivated“ RunningInBackground="Application_RunningInBackground"/> </Application.ApplicationLifetimeObjects>

Page 27: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

demoRun In Background

Tirez parti des nouveautés de Windows Phone 8 29

Page 28: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

• Données Nokia110+ pays, cartes vectorielles

• Cartes offlineLaunchers MadDownloader/MapUpdater

• Calcul d’itinéraires / Géocodage– via Maps Services

• Dépréciation de l’ancient Bing Map Control

Afficher une carte dans Windows Phone 8

Page 29: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

Cartographic Mode

31

Road (default) Aerial Hybrid Terrain

Page 30: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

ColorMode : Light ou Dark ?

32

Page 31: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

demoMaps

Tirez parti des nouveautés de Windows Phone 8 33

Page 32: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Tirez parti des nouveautés de Windows Phone 8

Où sont passés les pushpins ?

34

• Partis !• 2 solutions :• Créer des pushpins custom en dessinant

un UIElement dans un MapOverLay à ajouter dans un MapLayer, à ajouter dans Map.Children. C’est tout.

• Utiliser le composant Pushpin fourni dans Windows Phone Toolkit

Page 33: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

TEXT2SPEECHTirez parti des nouveautés de Windows Phone 8

Phone

Page 34: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Text2Speech – Les bases

Tirez parti des nouveautés de Windows Phone 8

• Qu’est ce que c’est ?• Mise en place :

• Manifest : - ID_CAP_SPEECH_RECOGNITION• Classe – SpeechSynthesizer +

SpeakTextAsync• Mise en queue• InstalledVoices : Langue & Genre (SetVoice)• Sur Device : Langue à installer manuellement

Page 35: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Text2Speech – Technique avancée

Tirez parti des nouveautés de Windows Phone 8

• Le SSML = fichier XML• Mise en place :

• Le header <speak/> • Le tag Voice : Langue + Genre• Le tag Prosody : Manière de parler • Le tag Audio : Ajouter un wav

Page 36: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

demoSpeech – Les bases + Avancés

Tirez parti des nouveautés de Windows Phone 8 38

Page 37: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Text2Speech – Exemple d’utilisation

Tirez parti des nouveautés de Windows Phone 8

• Accessibilité au malvoyant• SpeechBehavior

xmlns:behaviors="clr-namespace:SamuelBlanchard.Accessibility" behaviors:SpeechBehavior.CanSpeak="True"behaviors:SpeechBehavior.Language="fr-FR"

• Téléchargement : – http://blog.naviso.fr/wordpress/?p=1573

Page 38: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

demoSpeech – Accessibilité

Tirez parti des nouveautés de Windows Phone 8 40

Page 39: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

SPEECHRECOGNITIONTirez parti des nouveautés de Windows Phone 8

Phone

Page 40: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Recognition – Les bases

Tirez parti des nouveautés de Windows Phone 8

• Qu’est ce que c’est ?• Nécessite internet

• Manifest :• ID_CAP_SPEECH_RECOGNITION,• ID_CAP_MICROPHONE, • ID_CAP_NETWORKING

• Avec Boite de dialogue : SpeechRecognizerUI

• Sans Boite : SpeechRecognizer• InstalledSpeechRecognizers : Langue &

Genre (SetRecognizer)• Sur device : Langue à installer manuellement +

Autorisation

Page 41: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Recognition – Résultat

Tirez parti des nouveautés de Windows Phone 8

• Une chaine de caractère• Un indice de confiance :– Hight– Low– Medium– Rejected

Page 42: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Recognition – Avancé

Tirez parti des nouveautés de Windows Phone 8

• Gérer la grammaire de son application (préfixé en AddGrammar)• FromPredefinedType: Dictation (defaut) ou

WebSearch• FromList: Ne regade que dans cette liste

sinon Rejected• FromUri : Fichier SRGS grammars : .grxml

sr.Grammars.AddGrammarFromPredefinedType("webSearch", SpeechPredefinedGrammar.WebSearch);

Page 43: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

demoSpeech – Monsieur et Madame !

Tirez parti des nouveautés de Windows Phone 8 45

Page 44: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

APP TO APP COMMUNICATIONTirez parti des nouveautés de Windows Phone 8

Phone

Page 45: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

AppToApp – Les bases

Tirez parti des nouveautés de Windows Phone 8 ms-settings-airplanemode:

Launch Bluetooth Settings Page ms-settings-bluetooth:

• Qu’est ce que c’est ?• Association d’URI ou extension de Fichier• Les URI système : (exemples)

– Mode Avion : ms-settings-airplanemode:– Panneau BlueTooth : ms-settings-bluetooth:

• Le lancement : – Launcher. LaunchUriAsync(new Uri(monUri))

Page 46: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

AppToApp – Avancé

Tirez parti des nouveautés de Windows Phone 8 ms-settings-airplanemode:

Launch Bluetooth Settings Page ms-settings-bluetooth:

• Mise en place : association URI– Format de l’URI -> protocole:paramètres– Manifest :

<Extensions>    <Protocol Name="techdays2013"    NavUriFragment="encodedLaunchUri=%s"    TaskID="_default" /></Extensions>

– URI commence par /protocole – UriMapper pour router l’uri (qui n’est pas une

page)– OnNavigatedTo => traitement de l’uri

Page 47: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

RootFrame.UriMapper = new AssociationUriMapper();

AppToApp – Code UriMapper

Tirez parti des nouveautés de Windows Phone 8 ms-settings-airplanemode:

Launch Bluetooth Settings Page ms-settings-bluetooth:

public override Uri MapUri(Uri uri) { // on decode la chaine pour recupérer le protocole original string uriString = HttpUtility.UrlDecode(uri.ToString()); const string uriTechdays = "/Protocol?encodedLaunchUri=techdays2013:///";

if (uriString.StartsWith(uriTechdays)) { // On recupère tout se qui suit le ? (le ? étant inclus) string query = uriString.Substring(uriTechdays.Length);

return new Uri("/SpeechRecognitionPage.xaml" + query, UriKind.Relative); }

return uri; }

Page 48: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

demoAppToApp – Je m’auto-lance !

Tirez parti des nouveautés de Windows Phone 8 50

Page 49: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Trucs et astuces pour rendre votre application Windows Phone 8 plus visibleMardi 12 février : 16h00-17h00 (niveau : 200)

Cycle de vie d'une application Windows 8 et Windows Phone 8Mardi 12 février : 16h00-17h00 (niveau : 300)

L'histoire d'HTML5 pour les développeurs Windows Phone 8Mercredi 13 février : 16h00-17h00 (niveau : 200)

Et ensuite ?

Page 50: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Booster votre application Windows Phone 8Mercredi 13 février : 17h30-18h30 (niveau : 300)

Bien soumettre et monétiser votre application Windows 8 et Windows Phone 8Jeudi 14 février : 11h00-12h00 (niveau : 200)

Plus près, plus près… NFC et la communication à proximité dans Windows 8 et Windows Phone 8Jeudi 14 février : 14h30-15h30 (niveau : 200)

Et ensuite ?

Page 51: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Formez-vous en ligne

Retrouvez nos évènements

Faites-vous accompagner gratuitement

Essayer gratuitement nos solutions IT

Retrouver nos experts Microsoft

Pros de l’ITDéveloppeurs

www.microsoftvirtualacademy.com

http://aka.ms/generation-app

http://aka.ms/evenements-developpeurs

http://aka.ms/itcamps-france

Les accélérateursWindows Azure, Windows Phone,

Windows 8

http://aka.ms/telechargements

La Dev’Team sur MSDNhttp://aka.ms/devteam

L’IT Team sur TechNethttp://aka.ms/itteam

Page 52: Géolocalisation, Speech, Intégration : Tirez parti des nouveautés de Windows Phone 8

Questions ?