Accueil Nos publications Blog Les nouveautés des applications Windows Phone Silverlight 8.1

Les nouveautés des applications Windows Phone Silverlight 8.1

Windows Phone 8 logoSession originale : What’s new with Windows Phone Silverlight Apps

Microsoft met le focus sur les Universal Applications, la nouvelle approche pour développer sur Windows 8.1 et Windows Phone 8.1. Seulement on oublie de parler de l’héritage des anciennes applications Windows Phone.

Historiquement, Windows Phone tourne sur le framework Silverlight depuis la version 7.0.

Les Windows Phone Store Apps utilisées dans ce qu’on appelle les Universal Apps reposent elles sur le framework XAML, commun à Windows 8.

En bref, Windows Phone 8.1 propose 2 frameworks XAML :

  • Common XAML : hérité de Windows 8
  • Silverlight : héritage depuis WP7

Lorsqu’on parle de WP 8.1, nous différencierons donc les Windows Phone XAML Apps (ou Windows Phone Store Apps) des Windows Phone Silverlight Apps.

Quel framework adapté à quel type d’applications ?
Quelles sont les nouveautés et les différences à noter ?
Nous allons aborder tout cela …

Posons le décor

Microsoft continue d’investir gros dans le framework XAML, et aujourd’hui la convergence est d’environ 90%, ce qui est déjà un énorme pas en avant.

Pour ne délaisser aucun développeur et continuer à préserver l’investissement dans les applications Silverlight du Store, on conserve ce type d’application pour Windows Phone. Nous allons voir que WP Silverlight 8.1 propose énormément de nouveautés qui sont d’ailleurs souvent communes avec WP XAML Apps.

Seulement voilà, le monde parfait n’existant pas (encore), un petit ensemble résiste à l’envahisseur et n’est pas complètement convergé. C’est cet ensemble qui déterminera, en fonction de ses besoins, s’il faut continuer sur la voie de Silverlight ou du XAML.

Les équipes de Microsoft insistent sur le fait que leur priorité n°1 est de converger intégralement les APIs, il va falloir être un peu plus patient… en attendant, le framework Silverlight reste une option valide pour les développeurs Windows Phone.

WP_20140403_17_35_38_Pro

Migration d’un projet WP Silverlight 8.0 vers 8.1

Concrètement, migrer de 8.0 à 8.1 revient à faire un clic droit sur le projet > mettre à jour vers WP 8.1. On a l’habitude de cette procédure qui se veut automatisée et simple. Dans la majorité des cas il n’y aura rien (ou presque) à modifier.

Pour rappel : la mise à jour est irréversible, Visual Studio propose donc de créer un backup, au cas où, sait-on jamais.

Le temps que tout le monde migre vers WP 8.1, il est recommandé de conserver une application 8.0 et 8.1 sur le Store pour le moment.

Lorsqu’on créé un nouveau projet Windows Phone 8.1, les templates font bien la différence entre Windows Phone (XAML) et Windows Phone Silverlight.

Manifeste de l’application

Les applications Silverlight 8.1 s’exécutent maintenant dans un “contexte moderne“, c’est-à-dire en bénéficiant de la modernité du XAML framework, mais en conservant certaines spécificités Silverlight.

Les WP Silverlight conservent un packaging au format .XAP, mais attention, il contient 2 manifestes :

  • Package.appxmanifest, correspondant aux applications XAML et qui permet de déclarer les nouvelles fonctionnalités comme le Windows Notification Service, les share contracts, file picker, etc.
  • WMAppManifest.xml, pour supporter certaines anciennes propriétés

Au niveau des capabilities, il existe une correspondance dans chacun des 2 manifestes. Il suffit d’activer une capability dans un des 2 fichiers pour qu’elle soit prise en compte. La bonne pratique veut qu’on privilégie le package.appxmanifest.

Compatibilité

Les applications Silverlight 8.0 continuent de tourner sur les téléphones 8.1, les binaires sont 100% compatibles.

Par contre, en faisant une mise à jour 8.0 vers 8.1, il existe quelques breaking changes à connaître.

La liste complète se trouve ici : https://msdn.microsoft.com/en-us/library/windowsphone/develop/dn642084(v=vs.105).aspx.

Dans les principaux, on retiendra que la version 8.1 embarque quelques corrections de bugs portant sur l’optimisation du tri des collections, et quelques soucis du côté du DateTime.Parse() qui lançait une exception auparavant.

Le nouveau contexte moderne induit un comportement légèrement différent :

  • Le Fast App Resume est activé par défaut et ne peut pas être modifié, ce qui veut dire que lorsqu’on quitte puis relance une application, celle-ci n’est pas remplacée mais repart là où elle en était (=resume)
  • Taper sur “back” pour dépiler la stack de navigation quitte l’application, comme dans Silverlight 8.0, et contrairement à WP XAML 8.1

Fonctionnalités non supportées

Deux fonctionnalités ne sont pas du tout supportées par Silverlight 8.1 :

  • Background audio : pour utiliser du son en background, il faut rester en 8.0 ou basculer en WP Store App
  • Continuous Background Execution Agents : WP8 permet de tracker la localisation d’un utilisateur sans avoir l’application lancée, pour conserver cette fonctionnalité il faudra rester en Silverlight 8.0

WP_20140403_17_49_39_Pro

Nouvelles fonctionnalités

Silverlight 8.1 apporte de nombreuses nouveautés, notamment du côté natif avec Direct2D, DirectWrite, Windows Imaging Component

Pour le reste, il s’agit notamment des APIs WinRT disponibles à la fois en Silverlight 8.0 et XAML 8.1.

WP_20140403_17_51_58_Pro

Faisons un tour d’horizon plus en détails :

  • Support de la carte SD
    • Installation d’application
    • Lecture/Ecriture
  • Share Source / Share Target
    • Comme sur Windows 8, on peut partager du contenu facilement et dans plusieurs formats (texte, images, binaire, etc.)
  • Notifications WNS
    • Badge / tiles / toast / notification center
    • Trigger sur push notification
  • Storage (Picker Provider)
    • Support du file picker pour sélectionner un ou des fichiers sur le téléphone
    • Une application peut se déclarer comme fournisseur de file picker, comme Drop Box par exemple
  • Geofencing
  • Bluetooth 4.0 Low Energy
    • Exploitez toutes les possibilités du Bluetooth basse consommation
  • Background Tasks
    • Hérité de WinRT pour déclencher des tâches sans que l’application soit lancée
  • Améliorations de l’API calendrier et rendez-vous
    • Gestion du calendrier plus poussée avec édition et suppression possible des rendez-vous
  • Email avec pièce jointe (!)
  • Authentification web
    • Support de Oauth avec une popup intégrée (comme sur Windows 8)
    • Compte Microsoft de l’utilisateur détecté automatiquement, authentification simplifiée
  • Data Roaming
    • Roaming possible entre applications si l’identité est partagée
  • Accessibilité (UI Automation, Large Text, High Contrast)

WP_20140403_17_34_50_Pro

Déploiement et soumission

Le Store supporte désormais 3 versions d’application : 7.0, 8.0 et 8.1 (XAML ou Silverlight, l’un ou l’autre).

Lorsqu’on créé une nouvelle application WP 8.1 XAML ou Silverlight, il faut réserver un nom unique, comme pour Windows 8. Comme un nom déjà existant peut rentrer en conflit avec d’autres, les applications existantes Silverlight 8.0 n’ont pas cette contrainte, même lorsqu’elle sont mises à jour vers 8.1.

Pour associer un nom d’application à ses manifestes, plusieurs actions sont nécessaires :

  • Réserver un nom d’application : génération d’un package identity name et d’un publisher name
  • Editer le package.appxmanifest en renseignant le Package Identity Name, Publisher Name et App Name
  • Editer le WMAppManifest.xml en renseignant un App Name qui correspond

WP_20140403_18_09_18_Pro

A noter que ces actions ne sont pas nécessaires avec les Windows Phone Store Apps puisqu’il suffit de faire un clic droit sur le projet pour l’associer à une application de son compte développeur.

Quel framework dois-je utiliser ?

Silverlight est là pour rester pour quelques temps, il va falloir bien choisir ses armes :

  • Nouvelle application : XAML ou Silverlight 8.x
  • Windows Store App existante : XAML
  • App qui manipule l’écran de verrouillage : Silverlight 8.x
  • App basée sur la caméra (Lenses) ou VOIP : Silverlight 8.x
  • App de musique : Silverlight 8.0 ou XAML
  • App WP Silverlight existante : Silverlight 8.x ou XAML

Résumé

Microsoft a créé un peu de fragmentation à l’intérieur de Windows Phone avec 2 frameworks Silverlight et XAML.

Le choix est finalement relativement simple lorsqu’on sait quel type d’application on adresse. Malheureusement, certaines combinaisons ne sont plus possibles. Il faudra faire confiance aux équipes de Microsoft pour travailler rapidement et finaliser cette convergence. Il ne reste plus grand-chose, c’est dommage de ne pas encore avoir franchi ce cap …!