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

Upload: microsoft

Post on 30-Jun-2015

237 views

Category:

Documents


4 download

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

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 ?