Goufablog

Geek, nouvelles technologies, société et jeux vidéos!
21
janv.
2011
GuessNumber : Ma première application Android
Android - par Goufalite - 2472 hits

Après un certain temps d'acharnement sur mon ordinateur, je suis enfin arrivé à finaliser ma première application pour le système Android! Bon je n'ai pas choisi la plus complexe, mais c'est un début : il faut deviner un nombre selon un certain niveau de difficulté.

Etat des lieux

Je connaissais la plate-forme depuis que la publicité a commencé en 1.1 mais j'ai patienté jusqu'à attendre que mes points de fidelité soient assez remplis pour me permettre de changer de mobile. Un jour de début juillet alors que je lorgnais sur le catalogue des téléphones (ils n'étaient que 2 à l'époque, le dream G1 d'Orange et le Magic de SFR), je me suis aperçu que mes points de fidelité ont subitement augmenté! Je suis donc allé dans une agence pour me jeter sur la bête. 100 euros au lieu de 400!

Le vendeur m'a dit que ce téléphone est fait pour les sourds-muets : il ne peuvent communiquer que par SMS et le clavier physique est très pratique pour ça! Quand je lui ai dit que je cherchais ce téléphone-ci parce que ce n'était pas un iPhone (et que je lui ai dit de recharger son navigateur web pour trouver ma fiche) il a compris à qui il parlait!

Malheureusement gros défaut : les touches " et ' sont inexistantes sur ledit clavier mais une mise à jour m'a permis de les remettre en plus de passer le téléphone en Android 1.5 (Cupcake). Mais Orange cessera de proposer des mises à jour et il faudra le bon vouloir d'une équipe de développeurs indépendants pour continuer à maintenir le noyau de ce téléphone, au prix d'une manipulation assez risquée : le passage en root (utilisateur ayant tous les droits).

Qu'est-ce que j'aime avec Android?

  • la synchronisation avec tous les services Google
  • le projet est libre et donc moins fermé
  • les téléphones sont construits par plusieurs constructeurs, donc plus de choix.
  • Il y a un SDK en Java pour créer ses applications!

Développer sous Android

Passons aux choses sérieuses! En gros il faut :

  • télécharger le SDK d'Android
  • mettre à jour les composants depuis l'interface
  • créer une instance d'émulateur pour simuler le téléphone
  • télécharger/préparer votre IDE préféré (Eclipse, Netbeans, la console,...)
  • télécharger le plugin Android adapté pour votre IDE
  • coder!

Bon, moi je suis un rebelle et j'ai choisi Netbeans pour le développement, et je m'en sors plutôt bien. Pour télécharger le plugin, allez faire un tour sur le site de référence!.

Quelques conseils

Le plugin vous propose très facilement de créer un nouveau projet et de gérer les émulateurs à lancer pour les tests. Le débogage est accessible, mais il faudra quand même prendre quelques précautions :

Un petit pas pour le codeur, une grosse appli en vue

Progressez à tatons sinon vous allez être noyé(e) par les problèmes! En effet vous allez marteler la touche Ctrl et Espace pour connaître les moindres fonctions existantes et copier-coller plein de code sur Internet et vous allez vous retrouver avec... un fouillis monstrueux et une pile d'erreurs phénoménale, d'autant plus que la compilation et le déploiement prennent une bonne minute! Donc vérifiez bien votre code avant de le compiler.

Acharnez-vous!

Si vous pouviez voir mes commentaires, vous verriez des choses comme :

// Bon, je suis obligé de créer cette fonction parce que le système ne gère pas le passage de cette #$%=§ de... ah ben non en fait j'ai oublié de l'implémenter!

Le Java reste un langage plutôt souple (comparé à l'objectif C, hein?) et regorge de surprises et de subtilités! Mais la programmation Android se développe assez rapidement et beaucoup de communautés sont prêtes à vous aider à résoudre vos petits caprices de développeur débutant.

Internationalisez votre application dès le début
Tous les messages de votre application dans un seul fichier!
Tous les messages de votre application dans un seul fichier!

Grâce à la définition de certaines variables en arborescence et au format XML, traduire son application en plusieurs langues est d'une facilité redoutable! De plus c'est une technique intéressante pour centraliser vos messages utilisateurs (erreur, dialogue,...)

On n'oublie personne!
Y en aura pour tout le monde!
Y en aura pour tout le monde!

"Pff ils n'ont qu'à avoir un grand écran" Le XPeria Mini se vend plutôt bien et possède un petit écran. Il faut donc adapter l'application au téléphone, appareil, autoradio,... et ce toujours grâce à l'arborescence XML et la possibilité de choisir la présentation en fonction de la langue. Bon là vous avez un projet avec des combinaisons de locales et d'adaptations d'écran qui se chevauchent, mais ne désespérez pas : plus vous aurez de fonctionnalités et plus vous aurez de monde! Google préconise pour les icônes et les dessins de travailler sur le modèle médian pour pouvoir l'agrandir et le retrécir sans trop de pertes.

Principe de mon application GuessNumber

J'ai bien entendu commencé avec le célèbre HelloWorld que l'on trouve partout mais j'ai choisi de ne pas m'embarquer directement dans une application sauvage comme le Démineur ou le Memory (mais c'est prévu ne vous inquiétez pas) : il s'agit d'un programme simple où il faut deviner un nombre dans une certaine plage de valeurs en fonction de la difficulté et d'une nombre d'essais. C'est genre de programme que l'on fait quand on apprend la programmation, mais là on a en plus l'interface graphique et l'implémentation de toutes les possibilités offertes par Android (les variables XML, les différents widgets,...). Comme je suis plus à l'aise j'ai choisi de créer mon propre package de gestion de partie pour pouvoir le réutiliser dans mes autres jeux (interface, automate d'état de la Partie, gestion du plateau, génération de jetons,...)

Pour la télécharger, par ici :

qrcode
Prenez en photo ce code avec l'application Barcode Scanner

Publier l'application

La règle de l'Android Market

Contrairement à certaines firmes qui contrôlent en sortie les applications proposées, Google permet de publier très rapidement une application qui sera visible sur la plateforme du Market en quelques minutes. Cependant certaines règles s'imposent pour ne pas la voir disparaître rapidement. Bien entendu elle doit respecter les lois du pays dans lequel elle est publiée comme par exemple l'utilisation des données privées et les l'incitation à la haine raciale. Le Market est une alternative de diffusion mais il est possible de les proposer sur d'autres support comme par exemple un site web, mais il ne faut pas oublier que le Market propose un système facile et incontournable s'il fallait monétiser l'application.

Des sous! Encore des sous!

Les utilisateurs dépensent une fortune sur des smartphones hors de prix, mais préfèrent pirater ou se contenter des versions d'essai d'application pourtant peu chères. Vous pensez à monétiser vos applications? Il faut y réfléchir!

Tout d'abord Google impose sur son Market une rétractation de 48 heures en cas de problème, il faut que de votre côté vous puissiez penser à dédommager l'utilisateur à ce moment-là. De plus si vous devez enlever une application du Market il faudra rembourser les gens qui l'ont achetée depuis 12 mois! Une valeur sûre pour les utilisateurs afin de ne pas se faire pigeonner. Le Market propose Google Checkout pour centraliser les dépenses et un moteur de licence afin de surveiller l'utilisation abusive des applications, mais il est possible de trouver d'autres alternatives de paiement telles que Paypal et la création d'un compte par exemple.

Attention toutefois au droit du travail : si par exemple un ami dessine des objets pour votre application et que vous la vendez, il faudra penser à le rémunérer en conséquence en fonction des ventes. N'oubliez pas non plus de glisser son nom quelque part, et surtout rappelez-vous que Tout ce qui est numérique peut se copier! par conséquent vous ne pourrez pas garantir une non copie des dessins ou de la musique d'une application...

Enfin, ne faîtes pas payer votre application n'importe comment : présentez votre démo!

  • La publicité est un moyen de rémunération standard qui coûte cher en bande passante et en place chez l'utilisateur et qui va l'agacer à la longue, donc laissez plutôt la publicité cachée dans un menu ou une page accédée peu souvent.
  • Bridez votre application de démo mais pas trop! Mettez une dizaine de niveaux plutôt que un seul et ne cassez pas l'utilisateur en lui montrant le chemin vers une fonctionnalité qu'il découvrira aussitôt inaccessible. Présentez dès le début, sur la description du Market, ou sur un site web la différence entre la version gratuite et la version payante.

Si des utilisateurs lisent ces lignes, il faut penser au fait que certains développeurs passent du temps en dehors de leur temps de travail sur des applications et maintiennent un site web qui coûte de l'argent. Pensez à eux!

Verdict

Mis à part les interfaces graphiques en layout que tous les développeurs Java connaissent, Android est plutôt accessible et permet de se faire connaître assez rapidement sur des téléphones et des langues différents. Il faut cependant de la patience et de l'acharnement pour venir à bout de votre développement, mais surtout n'oubliez pas : c'est grâce à vos outils que vous faîtes du bon travail, donc ne leur jetez pas systématiquement la faute!

+ Sources des images


Vous pouvez aussi lire :

GoufaliteGoufalite - Site Web - Steam - Twitter
Rédacteur et programmeur principal du Goufablog. Ingénieur de profession et avide de connaissances technologiques et scientifiques il partage son savoir à travers ces différents articles. Plus de renseignements sur la page de contact.
RSS Voir ses articles...
CC-BY-SACet article est protégé par une licence CC-BY-SA.


Tags : acharnement, Android, application, Eclipse, Java, NetBeans, SDK
Delicious   Facebook   Commentaires(0) | Permalink
Sans commentaires!
Votre avis?
(Obligatoire)

Site et style réalisé par Goufalite
Reproduction interdite sans l'accord de l'auteur.
Valid XHTML 1.0 Transitional Optimisé pour FireFox 2
avec une résolution 1024*768