[Build 2012] Maps, géolocalisation et exécution en arrière plan.

November 01, 2012 -

Première session Windows Phone 8 de cette 3ème journée de //build/ 2012 (pas de keynote aujourd’hui!), on s’intéresse aux nouveautés concernant les maps, la géolocalisation et l'exécution en arrière plan !

WP_20121101_003

Location Services APIs

Les APIs de géolocalisation ont été complètement repensées sous Windows Phone 8. On conserve l’ancienne API .NET avec le GeoCoordinateWatcher pour la compatibilité ascendante, mais une nouvelle API WinRT est disponible et beaucoup plus complète !

Côté WinRT, on retrouve une nouvelle classe, Geolocator pour localiser un utilisateur. Il y a plus de contrôle sur la précision souhaitée (en mètres) et il est notamment possible de récupérer la position de l’utilisateur sans la tracker en continue (Single Location Request), ce qui permet d’économiser la batterie de l’utilisateur. Comme beaucoup d’API WinRT, celle-ci est totalement asynchrone (async/await). On retrouve aussi la possibilité de contrôler la mise en cache et les timeout.

En terme de bonnes pratiques, il faut utiliser au maximum le Single Location Request, quand c’est possible, car celà permet vraiment de réduire la consommation de la batterie !

En bonus, un bout de code sur l’utilisation de l’API Geolocator :

WP_20121101_005

Map Control et service de géolocalisation

Autre grosse nouveauté de la plateforme Windows Phone 8 côté cartes, l’utilisation des maps Nokia et des services de géolocalisation Nokia. On utilise un nouveau contrôle Maps qui permet notamment à l’utilisateur d’avoir ses cartes en mode offline pour ne plus consommer sa connexion de données et augmenter la fluidité ! Au passage, un nouveau launcher permet de proposer à l’utilisateur de télécharger une carte : MapsDownloader.

Le contrôle maps est capable d’afficher des cartes en 2D/3D, en vectoriel, ainsi que des itinéraires.

Avec cette carte, de nouveaux services arrivent pour effectuer directement des opérations de geocoding, géocoding inversé et de calcul d’itinéraire (il ne s’agit plus des services Bing, mais Nokia !)

Le BingMaps contrôle existe toujours pour la compatibilité des applications 7.x, mais il est déprécié !

L’utilisation du contrôle Maps et des services Nokia est gratuite, il faut juste associer son compte de développeur pour pouvoir récupérer un token.

Le maps toolkit extensions (http://phone.codeplex.com) permet d’avoir des fonctionnalités supplémentaires pour le contrôle Maps (pushpin etc..)

Géolocalisation en arrière plan

Sous Windows Phone 8, une application peut s’exécuter en arrière plan ET récupérer la position de l’utilisateur en continue (une seule application peut le faire). C’est uniquement possible pour les applications XAML (XAML, XAML+Direct3D, mais pas pur Direct3D).

En mode background, l’application n’a accès qu’à des ressources limitées et qu’à un sous ensemble des APIs :

WP_20121101_008

Comme pour les background agent sous Windows Phone 7.5, l’utilisateur peux désactiver l’application dans les paramètres du téléphone.

L’application peut être notifiée (event) et notifier l’utilisateur lorsque la géolocalisation est désactivée au niveau du téléphone.

Au niveau du cycle de vie de l’application, on a un nouvel événement : RunningBackground (en plus de Launching, Deactivated, Activated et Close) qui permet de savoir que l’application s’exécute en arrière plan ! Ce nouvel event remplace le deactivated pour les applications de géolocalisation en arrière plan :

WP_20121101_009

Fast Resume

Le fast resume est la capacité des applications Windows Phone 8 à reprendre là où elles étaient, même si l’utilisateur les relance depuis son écran d’accueil ou la liste des applications (contrairement à Windows Phone 7 ou l’application était totalement relancée!). Pour permettre à une application de faire du fast resume, il faut éditer le fichier manifest, au niveau de la définition de la DefaultTask (par défaut, le comportement est le même que sous Phone 7, “Replace”) :

fast app resume

Lorsque l’application est “résumée”, le mode de navigation dans la méthode OnNavigatedTo est à “Reset”, ce qui permet par exemple de vider la stack de navigation tout en conservant une ancienne instance de l’application (optimisation de la mémoire du téléphone et de la rapidité du chargement de l’application). Toutes les explications ici : http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj735579(v=vs.105).aspx

Conclusion

Beaucoup de nouveautés autour de la géolocalisation, avec le nouveau contrôle Maps de Noka, les APIs de Nokia pour le géocoding et surtout la possibilité d’avoir une application qui track la position de l’utilisateur en continue et en background !

Stay tuned Winking smile

Julien

Comments

Share

Tags


Twitter


Stabilizing your drone’s or any shaky video with #Microsoft #CognitiveServices https://t.co/EyHx3NO8Pb via @davrous

May 03, 2016 18:31

What's new with @Docker for #Windows and #Microsoft @Azure users? https://t.co/KadVPmEdsS https://t.co/VptaAtj8gh

May 03, 2016 17:01

@JeromeSoyer maybe not fully implemented yet... Not mentionned in https://t.co/WPy8nzQa2c, I'll try asap and let you know :)

May 02, 2016 18:43

@JeromeSoyer hmm didn't try on Windows 10 yet and I am not sure it is the same installation script than for Windows Server 2016 TP5...

May 02, 2016 18:38

@JeromeSoyer hi, on what step this error occurs ?

May 02, 2016 16:57

@rgardler @michaldudak thanks for the follow up !

May 02, 2016 16:46

.@VorlonJS – A Journey to #DevOps: publish image in the @Docker Hub using #VisualStudio #TeamServices https://t.co/RkZbCuzqnB #Containers

May 02, 2016 15:19

Get ready, #SQLServer2016 coming on June 1st https://t.co/I8pHqUbxxa

May 02, 2016 13:25

Building Awesome Games with @Azure #ServiceFabric https://t.co/uNryR9qvEK

May 02, 2016 08:39

@michaldudak I'll report this behavior to the Windows containers team and let you know

May 01, 2016 08:51

@michaldudak on my side I can't pull MSFT images today. Got an "EOF unexpected error" when running the docker pull command...

May 01, 2016 08:45

@michaldudak @rgardler Strange... Images seem to be hidden in the hub... Can't see my own one in the portal but can pull it from CLI...

May 01, 2016 08:43

Microsoft #Bots can now be included in #Facebook #Messenger ! :) https://t.co/PuGyVdHS9k

May 01, 2016 08:39

@michaldudak @rgardler but works well with some other. Can you try with this one : jcorioland/windowsiis which is on my own hub account? 2/2

May 01, 2016 08:00

@michaldudak @rgardler does it fail with all images? it seems there are some issues with ms images on the hub (always getting 404 error) 1/2

May 01, 2016 08:00