Prochaine série d’articles sur Android

Le HTC est aussi agréable à utiliser qu'à programmer

Le HTC est aussi agréable à utiliser qu'à programmer

Depuis quelques temps je développe beaucoup sur Android, et puisque la règle d’or du blogging et d’écrire sur ce qui nous interresse, je pense que je vais me lancer sur une série d’articles sur la question.

Je constate que la liste des références françaises sur la programmation du système mobile de Google est assez maigre. La documentation est en anglais, tous les exemples de programmation avancée aussi. Mais surtout, même les exemples simples ne prennent pas en compte les bonnes pratiques, ou n’expliquent pas le pourquoi du comment.

Il y des années, un site avait réussi un tour de force étonnant : expliquer la programmation Web (HTML + CSS et plus tard PHP) avec des mots simples, des pratiques excellentes et un enthousiasmes débordant. C’était le site du zéro.

Loin de moi l’idée de me lancer dans un équivalent dédié à l’embarqué. Ni le temps, ni l’envie. Mais je garde toujours en tête la mentatlité du webmaster (M@teo) de ce site quand j’écris un tuto. C’est un modèle du genre. Et tant pis pour les grincheux qui veulent du précis, du sérieux avec une explication détaillée du bubble sort en assembleur.

Mais au fait, pourquoi coder sur Android ?

Avec l’iPhone, Symbian, Palm, Windows mobile et J2ME, on a déjà une bonne panoplie de concurrents dans le domaines de la programmation des téléphones mobiles. La question n’est pas pourquoi programmer ces engins. Je vais supposer que si vous êtes restés à lire aussi loin l’article, c’est que vous êtes déjà convaincu de l’intérêt, ou au moins curieux. La question est donc, pourquoi vendre son âme à Google ?

Programmer sur Android, c’est bénéficier d’une vraie facilité de développement. Des fonctionnalités avancées telles que la géolocalisation, l’accès aux bases de données, la communication réseaux ou le multi-média sont vraiment mis à portée de main. Je ne sais pas si vous avez déjà jeté un coup d’oeil aux API Palm et WinMe par exemple, mais c’est du C/C++, ce n’est pas homogène selon les appareils, et c’est franchement galère. Le plus trompeur reste J2ME : on programme pour un téléphone en pensant que, étant du Java, le code sera portable. En vérité il ne marche nul par ailleurs.

Et justement programmer sur Android c’est aussi programmer en Java. Mais pas sur une vraie machine virtuelle Java. On a sous la main les qualités du langage de Sun, mais pas sa portabilité. Quel interêt donc ? Et bien l’implémentation de Google est homogène, et est portable d’un système Android à un autre. Pour peux que de nombreux téléphones passent sous Android, votre application fonctionnera sans rien changer.

Et justement, de nombreux téléphones y passeront. Car Android est libre, et gratuit de surcroit. Les constructeurs qui n’ont donc pas d’OS (Samsung, Nokia, Sony, HTC, bref les plus beaux portables…) , n’ont plus à dépenser une fortune pour avoir quelque chose qui fasse tourner leurs engins. Et tout est customisable. De plus, la communauté assurera son évolution même dans le cas hypothétique ou son créateur, qui n’est rien d’autre que le leader mondial de l’informatique actuelle, le laisse tomber. Mais peu de chances de ce côté, avoir Google engagé est surtout une garantie de plus de pérénité.

Android est petit, mais c'est votre ami

Android est petit, mais c'est votre ami

Quid de l’iPhone alors, le plus hype des concurrents ? Ne vous méprenez pas,  je pense que l’iPhone est une belle machine. L’API est bien foutue, l’interface est propre, les fonctions sont riches, et le parc d’appareils est pour l’instant bien supérieur à celui des machines sous Android. Mais l’iPhone est fermé, verrouillé de toutes parts :

  • Les formats multimedia de base sont des formats Apple;

  • Le langage de programmation est Objective C;

  • Programmer sans un Mac ? Possible, juste absolument emmerdant;

  • La licence de publication sur l’App Atore est de 99 €, soit 4 fois le prix de celle pour l’Android Market;

  • Votre application ne plait pas à Apple ? Ils vous censurent;

  • Votre application doit être remboursée ? Ils gardent leur commission.

  • Et toujours pas de tâche en background autorisée dans le SDK. Donc si vous voulez créer, au hasard, un lecteur multimedia concurrent de celui d’Apple, vous ne pouvez pas. Parce que dès que vous surferez sur le Net, la musique sera coupée. Bouh.

Pourquoi ne pas développer sur Android ?

Le parc de terminaux et très limité pour le moment. Si vous voulez immédiatement toucher une large publique, Android n’est pas fait pour vous. C’est un pari d’avenir.

Ensuite, Android est développé par Google. Encore Google. Toujours Google. Et on vous propose (gentiment mais avec graaaaaaaaaaaande insistance) d’utiliser les services Google. Vous ai-je déjà dis qu’Android était un produit Google ? Bref, Big G est partout, et si vous avez déjà une boîte Gmail, un Google Calendard et un compte sous Google Talk, vous avez peut être envie de ne pas mettre tous vos oeufs dans le même panier. Fair enough.

Enfin, il faut pouvoir se bouffer Java. Même avec Eclipse configuré au poil (d’ailleurs, peut on programmer en Java sans un bon IDE et resté sain d’esprit ?), je me morfond souvent en regardant du coin de l’oeil ma console Python. Je n’aime pas Java. Ok, ce n’est pas de l’assembleur ou du C mais ça reste restrictif à mes yeux : je pense que je suis un scripteur dans l’âme.

Ces points mis à part, Android offre des perspectives ludiques, programmatives et commerciales épatantes. A bientôt donc, pour quelques tutos à la sauce e-vidence.

2 Réponses à “Prochaine série d’articles sur Android”

  1. alex Dit:

    fabuleux ! tout y est ;)

  2. boll& Dit:

    OUI je suis d’accord avec toi.
    je voulais développer sur android mais après avoir lu cette article je suis dégouté.
    merci

Ça se comprend tout seul