[Techdays 2011] : Introduction au SDK de Windows Phone 7
Les Techdays 2011 ont été marqués par l’arrivée de la plateforme de développement consacrée à Windows Phone 7, le nouveau système mobile de Microsoft.
Cette session, animée par Pierre Cauchois et Julien Corioland, présentait donc une courte introduction à ce SDK.
Présentation de la plateforme
Afin de faciliter les développements, l’expérience utilisateur et l’image de marque, Microsoft a émis des recommandations minimales pour les terminaux devant fonctionner sous Windows Phone 7, c’est à dire que si votre applications fonctionne sur votre téléphone, elle tournera au moins aussi bien sur tous les autres.
Ces spécifications sont donc :
- Une seule définition : WVGA (480 x 800)
- Les mêmes capacités tactiles multi-touch 4 points
- Processeur de 1GHz (mini)
- Chipset grahique dédié et capable d’utiliser DirectX9
- 256Mo de RAM et au moins 8Go de mémoire Flash
- Accéléromètre avec boussole, compas numérique, capteur de proximité, capteur de luminosité et GPS assisté
- Appareil photo 5Mpx équipé d’un flash
- Radio FM
- 6 boutons dédiés : Retour, Recherche, Volume + et -, Power, Appareil Photo et “Touche Windows”
La configuration minimale est plus que raisonnable et permet déjà de laisser exprimer vos idées les plus folles 🙂
2 SDKs pour 2 types d’applications
Pour développer vos applications il vous faudra faire un choix, rassurez-vous, il sera vite fait !
- XNA : destiné à la création de jeux vidéo haute performance. Ce framework est pensé pour vous permettre de développer des jeux pour Windows Phone 7 mais aussi pour Zune, XBox360 et Windows. Intéressant !
- Silverlight : basé sur la version 3 de Silverlight ce framework est destiné au développement d’applications.
Tous ces outils sont téléchargeables librement et gratuitement à partir de l’AppHub. Une ISO est disponible à cette adresse.
Votre boite à outils s’enrichira donc de Visual Studio 2010 (version Express s’il n’était pas présent auparavant) et Expression Blend pour Windows Phone 7.
Ces 2 outils travaillent de concert : Blend étant plus destiné au design des applications (même s’il n’est pas réservé aux designers), quant à Visual Studio, il vous permettra de développer la logique, les librairies…
La documentation est disponible en ligne sur MSDN, toutefois la lecture du livre “Windows Phone 7, Développez avec Visual Studio, Silverlight et XNA” co-écrit par Léonard Labat (MSP), Julien Corioland (MVP) et Florent Santin (MVP) peut vous permettre d’avoir un support “hors-ligne”.
Les APIs Silverlight
Silverlight s’enrichit de nouvelles fonctionnalités permettant de gérer les spécifités des terminaux. On ne parle plus alors de Silverlight 3 mais pas encore de Silverlight 4 : non, celui-ci est à mi-chemin entre les 2, c’est un peu un Silverlight 3+ (ça me rappelle une pub qui passait à la TV quand j’étais gosse !).
Cette version gère en effet :
- les entrées/sorties spécifiques : écran tactile, multitouch, les boutons, micro, les différents capteurs ;
- la navigation et le cycle de vie spécifique ;
- les contrôles spécifiques tels que le Panorama et le Pivot ;
- une Sandbox partiellement ouverte (en fonction des besoins) ;
- des règles d’optimisations différentes adaptées à l’utilisation mobile.
Nous allons donc retrouver dans le framework des classes spécifiques pour gérer l’accéléromètre, la vidéo, le son, le microphone, la radio FM, le vibreur, la géolocalisation, le tactile, les launchers et choosers, et les notifications push…
Les launchers
Ils sont situés dans l’espace de noms Microsoft.Phone.Tasks et permettent d’utiliser les interfaces par défaut du système pour par exemple envoyer un email ou lancer un appel téléphonique.
On trouve ainsi 12 APIs :
- CameraCaptureTask : ouvre l’appareil photo
- EmailComposeTask : lance l’interface de composition d’email
- MarketplaceDetailTask, MarketplaceHubTask, MarketplaceReviewTask, MarketplaceSearchTask : ouvrent les différentes pages du Marketplace
- MediaPlayerLauncher : ouvre le MediaPlayer (Zune)
- PhoneCallTask : permet de passer un appel
- SaveEmailTask : permet d’enregistrer un mail
- SearchTask : lance une recherche par Bing
- SmsComposeTask : ouvre la fenêtre de composition des SMS/MMS
- WebBrowserTask : ouvre le navigateur
Les Choosers
Ils sont au nombre de 3 et permettent au moyen des interfaces standards de faire des sélections :
- EmailAddressChooserTask : Permet de sélectionner une adresse email dans la liste des contacts
- PhoneNumberChooserTask : Permet de sélectionner un numéro de téléphone dans la liste des contacts
- PhotoChooserTask : Permet de sélectionner une photo
Panorama vs Pivot
Les contrôles Panorama et Pivot sont semblables dans leur “philosophie”, puisqu’ils permettent de naviguer à l’horizontal dans vos applications, cependant quelques éléments les différencient.
Le contrôle Panorama
On utilisera ce composant pour afficher de manière horizontale des éléments ayant un rapport entres-eux. C’est le composant utilisé pour les Hubs. Le titre est généralement affiché en grand caractères en haut de l’écran et défile en même temps que l’on navigue entre les différents éléments.
Le contrôle Pivot
Ce contrôle est quant à lui l’équivalent d’un contrôle à onglets. Les titres des différents éléments sont affichés en grand et sont cliquables. Le titre de la page est lui affiché en petit.
Metro
Le concept
L’interface de Windows Phone 7 est basé sur la signalétique du métro… Le constat est simple : lorsque vous prenez le métro à Paris, à New York, à Londres… vous n’êtes pas obligé de connaitre la langue pour vous repérer, c’est très intuitif. C’est ce qu’on voulu reproduire les designers de Microsoft.
L’interface Metro est donc volontairement dépouillée, le contenu se suffit à lui-même pas besoin de l’enrober dans un tas de graphisme. “La typographie est belle et se suffit à elle-même”.
Les bonnes pratiques
Les applications se doivent d’être intuitives, naturelles… l’utilisation des contrôles Panorama et Pivot peuvent vous aider à créer ce contexte.
Ne vous contentez pas de tester avec l’émulateur, testez aussi à partir de votre téléphone… essayez d’autres polices de caractères, d’autres thèmes, d’autres couleurs…
Enfin, avant d’ajouter un élément “sexy”, posez-vous une seule question : Est-ce vraiment utile ?
Microsoft a publié des recommandations, lisez-les et suivez-les !
- Respectez le gabarit (proportions / alignements)
- L’espace vide est important
- Pensez “1 oeil, 1 doigt”… imaginez (même si c’est mal) que votre utilisateur l’utilise en conduisant ! (si si c’est très mal !)
- Soignez vos transitions et feedbacks
En un mot : COPIEZ, oui copiez ce qu’a fait Microsoft au sein de Windows Phone 7 ! (j’adore le Hub Musique & Vidéo !)
L’AppHub et le Marketplace
L’AppHub est l’endroit où vous allez pouvoir trouver toutes les ressources pour développer pour Windows Phone 7 : le kit de développement, la documentation, les forums… C’est aussi à partir d’ici que vous allez soumettre vos applications pour qu’elles apparaissent sur le Marketplace.
L’inscription au Marketplace coûte 99€ par an, elle vous permettra de publier autant d’applications payantes que vous le souhaitez mais seulement 5 applications gratuites. Vous aurez aussi le droit de débloquer 3 terminaux, mais vous pouvez demander une extension directement à partir du site, pratique pour débloquer tous les terminaux d’une équipe de développement.
La certification prend en générale moins de 5 jours… le plus souvent aux alentours de 48 heures. Tous les critères de validation sont disponibles sur l’AppHub. En cas d’échec, vous recevrez un rapport complet expliquant les anomalies détectées accompagnées de recommandations pour les corriger.
Les applications sont évaluées suivant 3 critères :
- Type d’application : jeu, application
- Contenu
- Validation technique : votre application doit-être stable !
Conclusion
Cette petite introduction du SDK de Windows Phone 7 permet d’entrevoir les possibilités de ce jeune système. J’ai été attiré par la facilité de développement et surtout par le fait que je ne sois pas obligé de changer mes habitudes : je garde mon Visual Studio, je continue de coder en .net avec C# et Silverlight ! Je suis en terrain connu !
Cependant, l’API est encore un peu light sur certains points : il est par exemple pas encore possible d’uploader des données sur skydrive.