Développement Windows Phone 7 (partie 1/2)

#ide#Microsoft#mobile

Avec l’arrivée de l’iPhone en 2007, Apple a fait exploser le marché des smartphones pour un usage grand public. Voyant le potentiel publicitaire que représentait ce nouvel usage, Google a proposé son propre système d’exploitation pour smartphone, Android, avec une philosophie opposée (code source disponible et système plus ouvert avec plus de fonctionnalités). Le premier modèle se vend fin 2008, presque un an après son annonce, aux États-Unis, sous le nom de HTC G1. Il faudra cependant attendre l’année 2010 pour voir s’envoler le système de Google et le voir prendre la tête des ventes. Fin 2010, un nouvel OS pour smartphones Estampillé Microsoft, Windows Phone 7, voit finalement le jour, après deux années de développement. Depuis 2007 Microsoft n’avait proposé qu’une nouvelle version de Windows Mobile (la 6.5), plus adaptée à un public professionnel. Avec Windows Phone 7, Microsoft propose enfin un système orienté grand public qui est donc directement en concurrence avec iOS et Android. Nous consacrons cet article à une présentation succincte du système ainsi qu’à une introduction au développement pour cette plateforme.

1. Présentation de Windows Phone 7

Avec WP7, Microsoft a choisi de proposer une interface se démarquant de ses deux principaux rivaux (Android et iOS). C’est ainsi qu’avec son interface nommée “Metro”, WP7 dispose d’une interface épurée, fluide et simple d’utilisation. Elle met l’accent sur la typographie et l’iconographie. L’interface Metro repose principalement sur deux principes, les “Tiles” et les “Hubs” :

Les tiles (ou carreaux) qui composent l’écran d’accueil. Il s’agit de carrés animés qui peuvent se mettre à jour en temps réel. Le tile “Messages”, par exemple, affiche le nombre de SMS non lus. Les tiles présents sur l’écran d’accueil ainsi que leur ordonnancement est au choix de l’utilisateur. La figure 1 est un exemple de ce à quoi ressemble la page d’accueil des Windows Phone par défaut.


Figure 1. Écran d’accueil

Les hubs (concentrateurs, ou lieux d’échange). L’interface Metro met également en valeur les hubs qui sont centrés sur l’information et le contenu, plutôt que sur l’application. A un hub correspond un univers thématique. On y retrouve ainsi regroupés de manière cohérente les applications, services et contenus présents sur le smartphone. Par exemple, le hub “contacts” (voir figure 2) regroupe pour une même personne les informations issues du répertoire téléphonique mais aussi de Facebook et de Windows Live.


Figure 2. Hub Contacts

Sur l’onglet “quoi de neuf”, on peut ainsi voir rassemblées les dernières nouvelles des contacts diffusés sur différents flux (Facebook et Windows Live). Pour le moment les types de comptes différents pour les contacts sont limités, mais Linkedin et Twitter notamment devraient être de la partie avec la prochaine version du système.

Par défaut, Microsoft propose 6 hubs : Contacts, Images, Jeux, Musique + Vidéo, Market Place et Office (Voir un aperçu en figure 3). Le hub Office représente d’ailleurs un gros avantage pour les utilisateurs d’Office sous Windows : il permet en effet d’afficher, de partager et même d’éditer des documents.





Figure 3. Différents hubs proposés sur les Windows Phone

Avec WP7, Microsoft propose un nouvel OS et non une nouvelle version de Windows Mobile. Les deux systèmes ne sont d’ailleurs pas compatibles. Les premiers téléphones tournant sous WP7 ont été commercialisés fin 2010. Au niveau du matériel, les pré-requis sont très précis pour faire tourner WP7 et très axés haut de gamme, de façon à proposer la meilleure expérience utilisateur possible. En contre partie, cela cantonne les WP (Windows Phone) aux parts de marché haut de gamme, en concurrence directe avec l’iPhone et les Android haut de gamme qui ont l’avantage de proposer plus de fonctionnalités et/ou d’applications. Ces prérequis extrêmement précis expliquent un faible nombre de modèles disponibles à la vente et font également que les premiers fabriquants, HTC, Samsung et LG, proposent peu ou prou le même téléphone. Dans ce contexte, il est difficile de se démarquer de ses concurrents.

Observons de façon plus détaillée la prise en main de WP7 par un utilisateur, et les particularités pour le développeur.

1. a. WP7 pour les utilisateurs

La jeunesse de WP7 se ressent rapidement au niveau des applications proposées et des fonctionnalités offertes aux utilisateurs. L’utilisation est très “contrôlée”, à l’image de ce que l’on trouve sous iOS. Par exemple, la synchronisation du contenu multimédia avec son ordinateur passe obligatoirement par “Zune”, un logiciel développé par Microsoft qui s’apparente à l’iTunes d’Apple (voir figure 4). Il n’est pas possible d’utiliser son Windows Phone à la façon d’un périphérique de stockage USB, comme il est par exemple possible de le faire avec Android ou Blackberry.


Figure 4. Zune

De la même façon, l’installation d’applications passe obligatoirement par le “Market Place”, équivalent de l’Apple Store. Il n’est pas possible d’installer une application téléchargée sur internet comme on le fait avec son ordinateur ou son téléphone sous Android, tout comme il n’est pas possible d’utiliser un magasin d’applications alternatif.

Hormis l’interface et le système innovant de hubs, il n’y a pas de réelles nouveautés par rapport à la concurrence. Sur bien des points, la comparaison est d’ailleurs en défaveur du WP, souvent à cause de la jeunesse du système. Ce qui entâche le plus l’expérience utilisateur est l’abscence du multi-tâches. Sur WP, il n’est en effet pas possible de surfer tout en continuant à recevoir les messages de ses contacts MSN. Lorsqu’on passe de Messenger à Internet Explorer, Messenger ne bascule pas en arrière plan. Ce dernier est tout simplement fermé, et on se retrouve donc déconnecté de MSN. Le multi-tâches existe pourtant, mais uniquement pour les applications système. Deuxième point négatif, crucial pour l’utilisateur et plaçant WP7 en deçà de ses deux principaux concurrents : le Market Place manque cruellement d’applications et les applications existantes sont souvent incomplètes ou de mauvaise qualité. Par exemple, Youtube n’est qu’une simple redirection vers le site mobile, Messenger by Miyowa est très bugué, on ne peut pas regrouper les mails par sujet, etc.

Ces points négatifs sont cependant à relativiser, car au delà des choix de restriction d’utilisation faits par Microsoft, les principaux défauts qui incombent à WP7 sont à mettre sur le compte de la jeunesse du système. Les plus grosses lacunes (multi-tâches, limitation des hubs, …) devraient d’ailleurs en partie être comblées à l’occasion de la diffusion de la prochaine version du système : WP7.1 MANGO . Cette nouvelle version n’est malheureusement pas attendue avant l’automne 2011. Notons par ailleurs qu’il est souhaitable que Microsoft ait revu son système de mise à jour des téléphones pour éviter de reproduire les couacs rencontrés avec les premières mises à jour mineures, avec notamment des téléphones rendus HS .

1. b. WP7 pour les développeurs

Pour les développeurs, le constat est plus positif. Il reste cependant les limitations imposées par Microsoft pour la mise à disposition des applications, qui sont d’ailleurs en grande partie les mêmes que pour le système d’Apple :

  • comme vu précédemment, les applications doivent obligatoirement être publiées depuis le Market Place : les magasins d’applications alternatifs ne sont pas autorisés
  • la mise à disposition directe sur un site internet n’est pas possible non plus

=> le développeur doit obligatoirement se créer un compte développeur et payer un abonnement annuel pour pouvoir publier des applications… et même simplement les utiliser sur son propre téléphone !

Autres points négatifs, les fonctionnalités laissées accessibles au développeur :

  • pas de multi-tâches
  • pas de services en arrière plan
  • pas d’équivalent au système d’intent d’Android pour la communication entre applications
  • pas de possibilité de surcharger les applications système : il est par exemple impossible de modifier l’interface du système

Au niveau des revenus générés par la vente des applications, le taux pratiqué est le même que pour les principaux concurrents, à savoir 30% pour Microsoft et 70% pour le développeur. Le prix minimum d’une application est de 0,99 dollars US (ce qui est plus élevé que chez les concurrents).

Là où Microsoft tire son épingle du jeu, c’est ce qui concerne les outils proposés pour le développement : ceux-ci sont complets et leur prise en main est aisée. Ce sera d’ailleurs approfondi dans un prochain article. Pour résumer, le développement se fait avec Silverlight pour les applications classiques ou XNA pour les jeux, tous deux étant exécutés sur le téléphone par .NET Compact Framework (environnement d’éxécution de code managé .Net pour appareil mobile). Les outils sont les mêmes que pour les autres types d’applications .Net : il s’agit de Visual Studio pour le développement et de Expression Blend pour les interfaces graphiques. Microsoft propose également un émulateur pour le débogage.

2. Développement d’applications : prérequis et première application

Le développement d’applications pour Windows Phone 7 requiert :

  • Un ordinateur sous Windows 7 ou Windows Vista
  • L’installation de Visual Studio Express 2010 for Windows Phone Development (version gratuite) ou de Visual Studio 2010 Pro avec les outils pour le développement Windows Phone 7 (version payante, plus complète). L’installation de ces outils est anormalement longue, problème malheureusement récurrent avec l’installation des outils de Microsoft.

Pour les développeurs qui ne le connaissent pas encore, Visual Studio est un IDE (atelier de développement intégré) simple à prendre en main et complet qui intègre de plus un outil d’édition graphique pour simplifier la phase de design des interfaces des différents types d’applications (Web, Windows, WP7…). On y retrouve les outils habituels des IDE évolués, permettant un débogage simple des applications, et un développement rapide (intellisence, immediate windows, snippets, …). La figure 5 offre un aperçu de l’interface de Visual Studio Express 2010, la version gratuite de Visual Studio.


Figure 5. Visual Studio Express 2010

Avant de présenter quelques spécificités du développement WP7, nous allons créer notre première application et regarder sa composition. Comme pour les autres types de solution (une solution dans Visual Studio correspond à un groupe de projets d’un même domaine), Microsoft propose un “template” de solution de type WP7 (une application de type “Hello World”). Une fois la solution générée, la première page de l’application, nommée “MainPage.xaml”, est ouverte dans l’éditeur comme le montre la figure 6. Les propriétés de la page et de ses objets peuvent être édités :

  1. de façon graphique,
  2. à l’aide de la fenêtre de propriétés
  3. ou directement en éditant à la main le fichier “.xaml” ou “.xaml.cs” associé


Figure 6. Page principale de l’application vue dans l’éditeur de Visual Studio

L’application, bien que n’ayant aucune fonctionnalité à l’heure actuelle, peut d’ores et déjà être testée dans l’émulateur. Il suffit pour cela de lancer le mode debug par un simple appui sur la touche “F5”. La compilation débute et l’émulateur est chargé. L’application se lance automatiquement, le résultat est reproduit en figure 7. Il est alors possible de la tester et de la déboguer.


Figure 7. La première page de l’application qui s’exécute dans l’émulateur

Par défaut, la cible utilisée pour le déploiement est l’émulateur, comme le montre la figure 8, mais il est possible d’utiliser un Windows Phone. Pour cela, il faut malheureusement que le smartphone soit enregistré en tant que téléphone de développeur, c’est à dire qu’il faut un compte de développeur et un abonnement au Market Place en cours de validité. Impossible donc de tester ses applications sur son propre téléphone sans dépenser pour cela 100 dollars US, soit environ 70 euros, par an.


Figure 8. Cible de déploiement de l’application

L’émulateur permet de simuler un certain nombre de fonctionnalités des Windows Phone. On peut par exemple passer du mode portrait au mode paysage (boutons à droite de l’émulateur), et simuler des clics sur les différents boutons tactiles du téléphone (au bas de l’émulateur). Ces fonctionnalités sont visibles sur la figure 9.


Figure 9. Les boutons de l’émulateur

La prise en main de ces outils est simple, nous allons maintenant nous attarder plus particulièrement sur les premiers pas et les spécificités du développement sous Windows Phone 7 par rapport aux applications Web ou aux applications Windows classiques.

3. Les fichiers d’un projet WP7

Lors de la création de la solution par défaut, un certain nombre de fichiers ont été placés dans l’application. On retrouve les images de l’application (“ApplicationIcon.png”, “Background.png” et “SplashScreenImage.jpg”), ainsi que deux fichiers “.xaml” avec leur code behind (correspond dans les projets .Net Silverlight au traitement associé aux objets de l’interface utilisateur) associé : un pour l’application (“App.xaml” qui contient principalement l’initialisation de l’application) et un pour la page d’accueil (“MainPage.xaml”, unique page de l’application lors de sa création). Le fichier “.xaml” contient la description de la page (la partie graphique), et le fichier “.xaml.cs” associé contient toute la logique de l’application, l’implémentation des actions associées aux différents évènements. Nous détaillons le fonctionnement des pages sous WP7 dans la section consacrée à Silverlight.

Contrairement à Android, il n’y a pas d’arborescence prédéfinie pour le projet. Les ressources par exemple (images, …) sont placées à la racine dans le projet template comme représenté en figure 10. Le développeur choisit donc l’arborescence qui lui sied, mais on se repère en contrepartie un peu moins facilement dans une application que l’on ne connait pas.


Figure 10. Les fichiers de la solution WP7 par défaut

Dans cette première partie, nous avons découvert l’interface de Windows Phone 7 ainsi que les outils proposés aux développeurs pour la réalisation d’applications. Nous avons créé un projet “type” Windows Phone 7 que nous avons lancé en mode “debug” dans l’émulateur, et nous avons découvert les différents fichiers entrant dans la composition du projet. La suite de cet article sera bientôt mise en ligne et permettra de présenter Silverlight pour Windows Phone 7 de façon à pouvoir se lancer dans le développement de ses propres applications. Stay tuned 😉

Références

  1. Annonce officielle de Windows Phone 7.1 MANGO : http://www.microsoft.com/presspass/presskits/windowsphone
  2. Problème de mise à jour des Samusung Omnia 7 : http://www.pcworld.fr/2011/02/23/high-tech/telephonie-voip/windows-phone-mise-jour-qui-fait-couac/512179