Petite incursion dans le monde Android

Maintenant qu'il fait plus clair, je vais écrire sur le sujet du développement Android. J'ai en effet passé le dernier mois plongé dans le monde du système d'exploitation ouvert pour smartphones de Google, à tenter de maîtriser les arcanes du développement d'applications mobiles.

Étant donnée ma condition de développeur web professionnel, pénétrer l'univers d'Android a été comme de découvrir un nouveau monde, avec ses règles, ses lois, et son écosystème propre. Moi qui, il y a quelque temps, pensait que les nouvelles technos web (html5, css3, etc.) allaient rendre le développement mobile natif obsolète, me voilà aujourd'hui avec un avis tout différent.

Certes les nouvelles apis sont séduisantes, et permettront sans doute de concevoir des *webapps* performantes, mais le temps que ce soit fonctionnel et largement adopté, les quelques cheveux me restant seront sans doute blancs depuis longtemps.

Au secours ! Encore du web ?!

Not getting Involved

C'est un avis personnel, mais je pense que ces technos ont raté le coche. Dans un monde parfait, elles seraient apparues 7 ou 8 ans plus tôt, auraient eu le temps de devenir matures, été utilisées pour concevoir la palanquée de services web2.0 apparue plus ou moins récemment, et été intégrées nativement dans les OS de smartphones.

Alors, elles auraient rempli leur rôle : fournir au monde un système de développement unifié et uniformisé, permettant de concevoir des systèmes d'informations simples ou complexes, sur un jeu de plate-formes hétéroclites.

Il s'agit malheureusement d'une douce utopie. J'ai encore des clients qui se plaignent que leur site est lent avec IE6, et le langage emblématique du web est juste un gros bricolage. Et ça me fatigue.

Bienvenue dans le monde Android

Hotline

Alors voilà, aujourd'hui, point de solution miracle pour concevoir des applications ouvertes multi plateformes. Venant de ce monde là, et habitué à l'hétéroclisme des technos web, découvrir l'écosystème Android fut agréablement rafraichissant.

Les avantages d'Android :

  • Android propose une API cohérente et unifée. J'ai un système d'exploitation sur lequel je me greffe, entièrement réalisé à partir d'un ensemble restreint de technologies parfaitement intégrées entre elles. Je fais du Java, du Xml, éventuellement un peu de SQL, et basta.
  • Android est documenté. Je veux faire une appli ? Je vais sur la doc du développeur Android, et j'ai sous les yeux TOUTES les étapes à suivre, de l'installation de l'environnement de dev, jusqu'à la publication de mon projet.
  • Android est ouvert (du moins, jusqu'à un certain point). Oui, c'est open-source. Et oui, le libre, c'est important
  • Android propose une facilité de publication. Je créé un compte sur le market, je clique sur publier, j'upload mon appli, et dans la minute, elle est disponible.
  • Ce n'est pas du PHP. Java, on aime ou on n'aime pas, mais quand on vient du monde PHP, qu'est-ce que ça soulage de bosser avec des technos un peu rigoureuses.

Évidemment, tout n'est pas non plus parfait. Allez, en vrac, quelques trucs qui me chiffonent :

  • Ça manque d'uniformisation. Surtout quand on compare ça avec le monde Apple, il est parfois risible de voir à quel point des applications peuvent être moches, et diverger entre elles en terme de présentation et d'affichage.
  • Ça tourne sur tout et n'importe quoi. Android a les défauts de ses qualités : quand vous créez une appli, il faut considérer qu'elle sera potentiellement installable sur des smarthones superévolués, sur des téléphones à l'écran riquiqui, sur des tablettes, des télés, et même des radios. La guerre des navigateurs, à côté, c'est un pique-nique sur l'herbe.
  • C'est fragmenté. Les versions d'Android se succèdent, et les constructeurs traînent parfois la patte à mettre à jour leur firmwares. On se retrouve alors avec un marché extrèmement fragmenté en termes de versions, et une portion non négligeable des téléphones tourne avec des versions obsolètes ((Je remarque qu'au fil des semaines, la situation semble s'améliorer toutefois)).
  • Big Brother is watching you. La décentralisation des données, vous connaissez ? Avec l'installation par défaut, vous en serez pour vos frais : gmail, gtalk, gmap, glocations, genpasseetdesmeilleurs, j'ai presque l'impression d'avoir vendu mes données et mon âme au diable.
  • C'est du Java. Bon, c'était gratuit. Mais avant de commencer, j'ai fait un mois de Python. Et passer de Python à Java, c'est rude.

Alors, on commence ?!

Ascension ou Décadence

Je parle, je parle, mais je vous sent impatients de mettre les doigts dans le cambouis. Sans discutailler plus longtemps, je vous propose de jeter un œil au projet que je vais mettre en œuvre dans les futurs articles. Mais d'abord, une petite histoire.

Après le déjeuner, j'aime faire une petite sieste. Mais pas trop longtemps, sinon je me réveille de mauvaise humeur. Alors je prends mon téléphone. J'ouvre l'appli horloge. Je vais dans l'onglet réveil. Je configure le réveil pour sonner dans 25 minutes. Je ferme l'appli. Je passe le téléphone en mode silencieux. Et je peux dormir.

Ça ne me convient pas. Ce n'est pas simple. C'est trop complexe. Et si je me rends compte que j'ai oublié d'envoyer un mail urgent juste après avoir réglé l'alarme ? Je suis bon pour recommencer.

De plus, quand le réveil sonne, je dois poser mon doigt sur l'un des minuscules boutons «Répéter» ou «Quitter». Je ne sais pas pour vous, mais personnellement, au réveil, j'ai l'occiput dans l'arrière-train, et localiser le bon bouton pour poser le doigt dessus est une tâche pénible.

Enfin, après ma sieste, j'ai une facheuse tendance à oublier de désactiver le mode silencieux, et à louper des appels.

Alors je me suis dit : « Je peux faire mieux ».

Découvrez Napply, le compagnon du siesteur

Merry sleepy christmas!

Comme la plupart des outils à succès, celui-ci a été conçu en réponse à la question : « Quel serait mon outil rêvé ? »

Dans mes rêves, je configure mon téléphone d'un seul geste. Je touche un bouton, et paf ! L'alarme est réglée, et le mode silencieux activé. Je peux dormir.

Dans mes rêves, quand je dois appuyer sur un bouton alors que je viens de me réveiller, ce bouton est énorme, et je ne risque pas de me tromper.

Dans mes rêves, quand je veux dormir quelques minutes de plus, je n'ai même pas besoin d'ouvrir les yeux : je saisi mon téléphone en tatônnant, et je le retourne. Paf, la sonnerie s'arrête, la répétition est activée, et je me rendors.

Dans mes rêves, quand je termine ma sieste, le mode silencieux de mon téléphone se désactive automatiquement.

Un rêve ? Plus maintenant, car cette application existe désormais. Si elle ne changera pas le monde, elle fait déjà un heureux : moi. Dans les prochains articles, nous allons prendre cette application pour base pour introduire différents concepts de développement d'applications Android.

D'ici là, faites de beaux rêves !