Site icon Nokians – La parole aux fans de Nokia

Premiers pas d’un développeur Windows Phone [1/2]

Pour aider ma grand mère, je suis devenu développeur Windows Phone en moins d’une semaine, et mon app a été publiée sur le Windows Phone Store en moins de deux semaines. Cette série d’article présente cette expérience personnelle.

Cette première partie présente tout l’aspect technique du développement pour l’OS des Nokia Lumia.

La génèse…

Ma grand mère utilise un Lumia 710 et une Surface. Récemment, elle m’a donné l’idée d’une app qui pourrait lui être utile. Elle a souvent des problèmes pour trouver l’information qu’elle souhaite pour son option d’électricité (EJP) auprès de EDF : cette option particulière propose un tarif général d’électricité peu cher, sauf 22 jours dans l’année qui sont beaucoup, beaucoup plus chers. Ces jours ne sont pas fixes, dépendent des conditions météo, et sont annoncés la veille vers 17h. Un site web existe, mais pour certaines raisons ne se rafraichissent pas toujours parfaitement sur la Surface de ma chère mamie. Je me suis mis en tête de réaliser l’app qui la préviendrait du statut électrique du lendemain : “EJP Tempo – EDF”. Cette app couvrirait les besoins des clients de deux options EDF similaires (EJP et Tempo).

Mais petit problème : je ne suis pas un développeur…

Mon idée d’application était plutôt simple, mais ne pouvait être réalisée par l’app studio en ligne proposé gratuitement pour les non codeurs (voir l’article sur Nokians il y a peu). J’ai donc du me mettre au vrai code à l’ancienne. J’avais une semaine de libre devant moi, ça tombait bien ! Je me suis inscrit sur le centre de développement Windows Phone et Windows 8 pour 16€, et me suis jeté dans l’arène !

Développer une app, c’est passer par un cycle répétitif de quatre étapes :

Apprentissage (Obtenir une Vision)

Mes seules expériences de code dataient un peu (une calculatrice Texas Instrument au Lycée, quelques routines en C à l’université, deux-trois macros excel, un peu de php il y a trois ans). Et surtout je n’avais jamais développé de projet complet à partir de zéro.

En fouillant sur MSDN, j’ai trouvé la merveille dont j’avais besoin : “Windows Phone 7 for Absolute Beginers”. C’est une série de vidéos (en anglais) pour se former en quatre jours au développement Windows Phone 7 pour ceux qui n’ont jamais codé en C# (l’unique langage de développement pour WP7 – WP8 acceptant en plus le C++ et le VB). Cette série existe aussi pour Windows Phone 8 : http://is.gd/v2xa3y. Comme j’avais du temps, j’ai dévoré les vidéos des deux premiers jours en une seule journée ! Gardant ces vidéos toujours disponibles dans un coin de mon ordi, j’ai pu attaquer la réalisation de mon app.

JOUR 1 :

PRÊT À SE LANCER !

Design

Le design est un élément très important des applications pour Windows Phone. C’est même un des points forts de la plateforme comparée à ses célèbres concurrents. Grâce au site des développeurs Nokia, j’ai pu trouver de très bonnes informations et conseils pour réaliser la navigation dans mon application. En particulier, j’ai apprécié la vidéo suivante qui rassemble beaucoup de “bien / pas bien” pour les développeurs Nokia sous Windows Phone :

[youtube JAUdDN8JwAw 610 400]

Une fois ces précieuses informations glanées, je me suis mis à la seule méthode convenable pour dessiner : une feuille et un crayon ! Je devais en particulier choisir entre un design avec de multiples pages, un design en pivot, ou un design en Panorama (voir ici pour plus d’info en anglais).

Sur ma feuille de papier, j’ai mis noir sur blanc toutes les informations des options EJP et Tempo de EDF que je souhaitais inclure dans mon app. J’ai travaillé plusieurs looks, et me suis astreint à toujours simplifier l’affichage (moins c’est mieux, dit-on), ce qui m’a poussé à supprimer certains données non utiles au fonctionnement de base de l’application.

Au terme de ce travail, j’avais déterminé un langage graphique qui me semblait le plus direct pour mes futurs utilisateurs : le Panorama. J’avais aussi suivi les conseils de la vidéo Nokia en utilisant des dispositions graphiques différentes en fonction de l’endroit où l’on se trouve dans l’app. Enfin, j’avais préparé l’alignement des différents éléments entre eux.

JOUR 2 :

PRÊT À CODER !

Code

Grâce au travail de la veille, je savais quelles fonctions je voulais mettre en place dans mon application. C’était plutôt simple, bien que restant complet. Voici une liste des plus importantes :

La première chose que j’ai faite devant cette liste a été de mettre des priorité :

Je décidai de me concentrer sur P1 pour la version 1.0 de mon app, en prévoyant de proposer P2 dans des mises à jours ultérieures. Les éléments de P1 contenaient : afficher des informations obtenues depuis internet, les sauvegarder dans la mémoire du téléphone et sauvegarder les préférences de l’utilisateur.

J’avais aussi réalisé qu’il est très important de limiter l’utilisation du forfait data. J’ai donc aussi mis en place une solution de compression des données hébergée sur un serveur personnel, réduisant de 97% la quantité de données nécessaires au bon fonctionnement de l’app !

Au bout de deux jours j’avais une première maquette qui fonctionnait : ma version zéro. Pas encore de sauvegarde ni de gestion de période d’essai, mais le design était terminé, et la requête web fonctionnait.

JOUR 4 :

L’APP FONCTIONNE !

La gestion de la sauvegarde s’est avérée complexe pour moi. J’avais beau rechercher partout sur le web (Stackoverflow, MSDN, Nokia developers, etc..), je n’arrivais pas à faire fonctionner cet élément de mon application. GRRRRR ! Je savais que je bloquerais à un moment ou un autre, et me suis armé de patience. Après une journée de galère, l’application continuait de planter au démarrage : je pris la décision de faire une deuxième application basique, pour tester la sauvegarde à part. Un bac à sable en quelque sorte, qui  me permit de démêler les fils de ce nœud de problèmes. Mon obstination eu raison de ce problème, et une journée plus tard, j’avais franchi cette étape douloureuse.

JOUR 6 :

L’APP v1.0 PRÊTE À ÊTRE PUBLIÉE !

Publication

Avant d’envoyer sur le site du Windows Phone Store, il a fallut préparer l’application : lui créer une icône dédiée aux différentes résolutions demandée par Windows Phone (petit, moyen, large), une illustration d’écran de démarrage, fixer les informations internes à l’application (nom de l’éditeur, du codeur, version de l’app, etc…), et surtout : TESTER, TESTER, TESTER ! À chaque modification, même cosmétique, je me suis obligé à vérifier que je ne détruisais pas mon app ; en effet, n’étant pas un professionnel, je ne maîtrise pas parfaitement les conséquences des modifications que je mets en place.

Pour tout l’aspect graphique, j’ai utilisé Adobe Photoshop CS2, une vieille version de la suite bien connue, et mise à disposition gratuite par Adobe ici : http://is.gd/4cJQ8r.

 

 

Après une journée de débogage, je me suis senti prêt à publier mon app. Le Windows Phone Store demande quelques informations supplémentaires : une icône “HD” avec fond non transparent, des captures d’écran, un texte descriptif, des mots clefs et la catégorie de l’application. De plus, c’est à cette étape que MS demande les informations de prix, les pays de vente, les besoins de pub ou d’achat internes (“In-App Purchases”).

JOUR 7 :

L’APP v1.0 EST SOUMISE À VALIDATION

Une fois tout cela fait, j’ai attendu pour voir mon application officiellement publiée sur le Windows Phone Store. J’ai reçu un email de Microsoft m’annonçant que “EJP Tempo – EDF” était disponible en téléchargement au bout de cinq jours ouvrés.

JOUR 12 :

EJP TEMPO – EDF EST PUBLIÉE !

Mises à jour

Dès le huitième jour (J+1 de la demande de publication), j’ai découvert un bug nécessitant une mise à jour rapide : au lieu de durer 30 jours, la version d’essai durait 30 heure ! Je me suis immédiatement mis à travailler sur une version v1.1 corrigeant le problème. En une demi journée, c’était bon. Cependant, mon application ne pouvait pas encore être mise à jour sur le Windows Phone Store, car la version 1.0 était encore en cours de validation. Je n’ai pu soumettre la v1.1 qu’à partir du jour 14. Une semaine plus tard, la mise à jour était effective.

JOUR 18:

v1.1 PUBLIÉE !

De plus, je devais mettre en place toutes les fonctionnalités de Priorité P2, comme par exemple la tâche d’arrière plan ou la gestion de la tuile dynamique. Étant alors moins disponible pour coder, j’ai mis plus d’une semaine à finaliser cette version et la tester (un peu plus sérieusement que la v1.0). Par contre le temps total passé sur la mise à jour a été moindre : seulement trois jours de développement au total.

JOUR 25:

v1.2 PUBLIÉE !

Conclusion

En partant de zéro, j’ai pu publier une app complète et sans bug en moins d’un mois. C’est assez positif : il est possible d’écrire des app pour Lumia sans avoir à devenir une machine à coder. L’environnement de développement Visual Studio est très bien fait, et facilite le travail de débogage. Enfin les frais d’inscription sont très faible (16€), surtout si on les compare à la concurrence fruitière.

N’hésitez pas à tester mon application sur votre Lumia, et à en parler autour de vous si vous connaissez des gens ayant les option EJP ou Tempo et qui ont un Lumia ou tout autre Windows Phone. Elle est disponible via mon site perso : http://antons.mobi/ejp.php.

Ou flashez le QR code suivant :

Quitter la version mobile