Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Mes applications favorites pour Android

Première rédaction de cet article le 29 septembre 2010
Dernière mise à jour le 8 octobre 2010


Depuis que je suis l'heureux possesseur d'un smartphone (phono sapiens ?), un HTC Desire, tournant sous Android 2.1, j'ai essayé quelques applications intéressantes, ainsi que des applications classiques mais avec des usages peut-être originaux. Donc, cet article est l'occasion de documenter un peu tout ça.

Comme Android, contrairement à iOS, n'oblige pas les développeurs à passer devant un Comité Central d'Approbation, qui décidera si leur programme mérite ou non d'être accessible, il existe un très grand nombre de logiciels pour Android. On peut les charger sur le Market officiel, sur un market alternatif ou bien directement sur le site Web de l'auteur (curieusement, un très grand nombre de ces applications ne semblent pas avoir de site Web officiel, voilà pourquoi je n'ai pas toujours mis de lien : si vous le connaissez, n'hésitez pas à le signaler). Beaucoup de ces applications sont libres, la plupart sont gratuites (toutes les applications citées ici sont gratuites sur le Market et, sauf erreur, la plupart sont libres ; les autres affichent souvent de la publicité dans un coin de l'écran). Mais attention, le niveau de qualité est très variable : on rencontre plein d'applications à moitié finies ou abandonnées par leur mainteneur. Il ne faut donc pas forcément se précipiter et tout installer, certaines vous feront perdre pas mal de temps avant que vous ne constatiez qu'elles ne sont vraiment pas au point. D'où l'intérêt des listes que font certains, par exemple celle de Geek Feat ou celle de FrAndroid. C'est d'autant plus vrai qu'Android est une plate-forme riche et complexe et que la maîtriser prend du temps ! (Comme le disait Bjarne Stroustrup, « I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone. ».)

Commençons par ce qui était le plus important pour moi, les fonctions d'« assistant personnel ». Mon cahier des charges était entre autres de ne pas échapper au Charybde Apple pour tomber dans le Scylla Google. Est-ce possible sur Android d'avoir agenda et carnet d'adresses sans passer par Google ? J'ai bien un compte Google, et même un agenda public, mais je ne voulais pas donner toutes mes informations à Google. L'excellente page « Se passer de Google sur Android » rassemble des conseils pour configurer les applications d'Android sans Google ou bien pour les remplacer. (Il y a aussi un article sur la technique pour n'installer que certaines applications Google.)

Le logiciel d'agenda d'Android est plutôt bien fait. Il gère par exemple très bien le fait d'avoir plusieurs agendas (un en local et un public chez Google, par exemple). Il utilise correctement le mécanisme de recherche d'Android (Paramètres -> Recherche -> Sources). Il n'a pas de concurrent, de toute façon (un projet comme AnCal a été abandonné et le logiciel Jorte, parfois cité, est plutôt pauvre, par exemple il n'a pas le concept d'évenements récurrents, je l'ai donc désinstallé). On notera que la page « Se passer de Google sur Android » citée plus haut ne parle pas de l'agenda. C'est en effet le point le plus noir d'Android. On peut se servir du client Agenda de Android sans Google, en utilisant un agenda local. Il ne semble pas y avoir de moyen simple de créer son propre agenda local mais Android 2.1 venait avec un tel agenda nommé Local, et Android 2.2, s'il a supprimé le précédent, a un agenda « PC Sync » qui semble convenir. Même après synchronisation, on ne le voit pas sur Google (je n'ai pas vérifié avec un sniffer que rien n'était transmis...).

Donc, on peut utiliser le client Agenda sans envoyer ses données à Google. Reste à les sauvegarder, voire à les synchroniser avec d'autres services, ce qui fait l'objet d'article spécifique.

Par rapport à l'Agenda, les Contacts ont été d'une simplicité enfantine. J'ai coupé la synchronisation avec Google, et récupéré les contacts qui étaient enregistrés dans le Palm, en passant par le format standard vCard (RFC 2415). Pour les sauvegardes, l'outil Contacts d'Android sait exporter en vCard sur la carte SD du téléphone, qu'on récupére ensuite en connectant le téléphone à un ordinateur par son câble USB. Curieuse incohérence de la part de Google que leur outil Contacts sache lire et écrire des fichiers vCard alors que leur outil Agenda ne sait pas lire ou écrire des fichiers iCalendar (plus exactement, il ne sait pas importer ou exporter la totalité de l'agenda mais il permet d'envoyer une entrée - et une seule - au format iCalendar / vCalendar)...

On peut stocker beaucoup de choses sur les quatre gigas de la carte SD incluse dans le HTC Desire. Il est donc préférable d'avoir un gestionnaire de fichiers pour s'y retrouver. Or, Android n'en a pas par défaut ! Ce n'est pas très grave car il y en existe plusieurs bons et j'utilise Astro, qui permet de voir les fichiers, les copier, les détruire, indiquer la place prise par les dossiers, etc.

Et pour le courrier ? On n'est pas obligé d'utiliser Gmail, le client de courrier standard (« E-Mail ») peut parler IMAP. Par contre, je n'ai jamais réussi à lui faire faire du SMTP avec authentification (RFC 6409), l'application prétend à chaque fois que le serveur SMTP ne propose pas d'authentification. Heureusement, il existe d'autres MUA disponibles sur Android, et qui fournissent les fonctions qui manquent cruellement à E-mail (comme la possibilité de transférer un message dans un autre dossier...). K9 mail semble le plus recommandé et c'est celui que j'ai adopté. Tout y marche très bien. (Curiosité : le Message-ID: fabriqué automatiquement se termine par @email.android.com...)

Ah, au passage, un autre point noir d'Android : on n'est pas obligé d'utiliser les applications livrées avec le système mais on ne peut pas les désinstaller (sauf si le téléphone est rooté). Ainsi, j'ai abandonné E-Mail au profit de K9, je n'ai jamais utilisé Bourse mais je dois quand même les laisser prendre de la place sur disque (et programmer un gestionnaire d'applications pour les tuer et les empêcher de consommer de la mémoire).

Une des utilités que je voyais au smartphone était la possibilité de se connecter en SSH de n'importe où, pour les machines que je gère. Le client SSH le plus recommandé semble être ConnectBot qui semble en effet excellent. On peut changer la taille des caractères dans le menu de configuration de chaque serveur, mais pas avec le mécanisme de zoom habituel d'Android, il faut utiliser le bouton... de contrôle du volume !.

Ce téléphone sert entre autre pour un usage professionnel et la sécurité est donc importante (par exemple, je ne mets pas encore de clés privées SSH sur cette machine, tant que tout le monde y a accès). Par défaut, la carte SIM est certes protégée par son code PIN mais ce n'est pas le cas de tout le reste du téléphone. Quiconque l'allume a donc tous les droits. Il va falloir que je trouve un système de verrouillage, je suppose que c'est quelque part dans la documentation...

Après ces outils peu amusants mais indispensables à l'homme moderne, place aux choses plus ludiques. D'abord, les cartes. Je n'avais pas envie de dépendre de Google Maps d'autant plus qu'il faut une connexion Internet. Contrairement à une légende répandue, on n'est pas toujours connecté ; même avec un abonnement 3G, le souci d'économiser la batterie et, surtout, les tarifs du roaming (à l'étranger, au moment où on a le plus besoin de cartes !) font que je préfère avoir les cartes en local. D'autant plus qu'il existe un superbe projet de création de données cartographiques libres et réalisées par les utilisateurs eux-même : OpenStreetMap, qui est aux cartes ce que Wikipédia est à la connaissance. L'excellent logiciel MapDroyd utilise les données OpenStreetMap, indique la position mesurée par le GPS du téléphone, et est très agréable, notamment sa possibilité de fonctionner entièrement hors-ligne, avec un choix simple des cartes que l'on télécharge (attention, toutefois, les données sont énormes et on ne peut pas tout charger à la fois, même sur les quatre gigaoctets de la carte SD livrée avec le HTC Desire ; heureusement, MapDroyd permet de gérer les cartes - ajout et enlèvement - très facilement). Par contre, MapDroyd n'a apparemment pas de fonctions de navigation : on ne peut pas lui donner une destination (que ce soit sous la forme d'une adresse ou bien en longitude/latitude) et lui demander de nous y emmener.

Pour cela, il faut se tourner vers gvSIG mini (la fonction d'analyse des adresses semble très sommaire) ou AndNav2 ou encore OpenSatNav. Il va falloir que je les teste mais aucun d'eux ne fonctionne hélas hors-ligne.

Pour accéder aux données GPS, les enregistrer, etc, on m'a recommandé Open GPS Tracker. Antennas, par contre, semble fonctionner avec les informations GSM, pas GPS.

En parlant d'OpenStreetMap, il faudrait aussi, maintenant que j'ai le matériel adapté, que j'y contribue. Disons que, pour l'instant, la documentation d'introduction est un peu effrayante et qu'une chose aussi simple que de corriger un bureau de poste mal placé Porte de Vanves semble nécessiter des compétences assez pointues (pour corriger des erreurs simples, il est peut-être préférable de passer par OpenStreetBugs, que me suggère Emmanuel H. mais qui ne semble pas fonctionner ni avec mon Firefox, ni avec mon Chrome). Dès que j'ai le courage, je m'y mets.

Plus facile, l'utilisation de Twitter. Un client est livré avec Android, Peep. Mais il y en a plein d'autres, vu le caractère essentiel, vital et critique de ce service. Plume (ex-Touiteur) est souvent conseillé. Je le trouve en effet agréable. Une étude comparée des clienst Twitter sur Android se trouve en http://androinica.com/2010/03/25/the-best-android-twitter-app-is-droid-vs-droid/.

J'utilise régulièrement le système Vélib. Y a t-il une application sur Android pour trouver un vélo libre, sachant que la Mairie de Paris ne prend en compte que les clients du téléphone fermé d'Apple et que l'API n'est pas officiellement documentée ? Molib ne me convainc pas : très riche graphiquement (avec vue en perspective des stations) mais manquant de certaines fonctions essentielles (comme la possibilité de trouver des stations ayant de la place, pour repose son vélo : Molib indique les stations ayant des vélos mais sans différencier les pleines des autres). J'ai eu des recommandations pour Veloid et OpenVelib. J'utilise désormais OpenVelib, qui a toutes les fonctions nécessaires.

Outre le Vélib, j'utilise souvent trains de banlieue et RER mais je n'ai pas encore cherché les applications d'information en temps réel sur le trafic, qui seraient certainement très utiles.

Un des avantages d'un smartphone est qu'on l'a toujours sur soi, prêt à être utilisé. C'est peut-être pratique pour réviser ses leçons. Par exemple, pour apprendre le lojban. Mais je n'ai pas encore trouvé de tutoriel Lojban sur Android... Question e-book, vous pouvez lire mes essais dans un autre article.

Et pour programmer ? Bien que le langage Go et Android sortent de la même entreprise, il ne semble pas y avoir déjà de moyen simple (i.e. sans rooter la machine) d'installer Go sur Android. En attendant, je garde en mémoire quelques liens sur les moyens de programmer en Python sur Android (pas encore essayé).

Tiens, pour garder sur mon téléphone une copie des fichiers sur lesquels je travaille, il y a même un client Subversion, Subdroid (pas encore testé).

Bien sûr, une des fonctions les plus centrales de tout téléphone portable est la configuration des sonneries. Cela peut se faire sur Android comme ailleurs mais je ne m'y suis pas encore lancé. Le jour où je le ferai, il existe un excellent éditeur de sons, permettant de prendre un MP3, d'en sélectionner une partie, de l'installer comme sonnerie ou alarme, etc : Ringroid.

Android reposant sur un noyau Linux, il ne devrait pas y avoir de problème à avoir un terminal ouvert, ou à installer un serveur SSH pour se connecter à distance. Mais j'ai l'impression que cela ne fonctionne que pour des téléphones rootés ce que je n'ai pas fait immédiatement. Pour cette raison, et pour le problème des outils de programmation (voir plus haut), je n'ai pas encore essayé d'écrire mon blog sur mon téléphone.

Un téléphone portable se déplace, par définition, et beaucoup de ses fonctions dépendent d'un accès à l'Internet (ou, au minimum, au Web). La 3G fournit cet accès mais à un prix élevé, surtout en roaming. Le Wifi, qu'on trouve partout en ville, fournit une solution intéressante mais, en se promenant dans Paris, on en croise, des bornes Wifi (en bonne partie grâce à FreeWifi auquel je suis abonné). Pour voir facilement la « meilleure », il existe plusieurs logiciels et, pour l'instant, je me sers de Wifi Analyzer, simple et pratique. Cela me fait penser que je voudrais bien pouvoir sniffer le trafic Wifi du téléphone, pour voir si Google ou d'autres applications n'envoient pas trop de choses, ce qui consomme des ressources réseau et peut indiquer un problème de respect de la vie privée. Si le trafic est protégé par WPA ou équivalent, une autre machine ne peut pas, je l'espère, examiner le trafic et il faut donc sniffer depuis le téléphone lui-même. Il existe apparemment plusieurs sniffers sur le Market, à tester.

Pour lire les code-barres 2D, si fréquents aujourd'hui, j'utilise Barcode Scanner (voir aussi cet article) mais il existe aussi Neo Reader. Pour créer des codes-barres 2D avec ses informations de contact, je recommande http://zxing.appspot.com/generator/. C'est avec lui qu'a été créée cette image, qui indique comment me contacter :contact-info-barcode.png. Le projet Proxima Produit, qui promet des services orientés consomateur sur mobiles. Quant à CodeOnLine, leur logiciel n'est pas proposé pour le HTC Desire.

Question réseau, il existe plein de petits logiciels qui affichent des informations sur la connexion du téléphone Android. La meilleure semble être Network Info II qui affiche tout ce dont on peut rêver, même l'adresse IPv6. Eh oui, Android 2.1 a IPv6 (apparemment, seulement sur le Wifi) et voici ce que voit un site Web visité :

2a01:e35:8bd9:8bb0:3ae7:d8ff:fed0:22f3 - - [29/Sep/2010:17:39:17 +0200] \
      "GET / HTTP/1.1" 200 247105 "-" "Mozilla/5.0 (Linux; U; Android 2.1-update1; \
      fr-fr; Desire_A8181 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) \
      Version/4.0 Mobile Safari/530.17" www.bortzmeyer.org

D'autres outils comme Netinfo n'affichent pas l'adresse v6. Si on veut faire des tests actifs sur le réseau, NetTools me semble bien, alors que Ping & DNS est très bogué pour moi. Le meilleur logiciel de test DNS est DNSdroid. Mais il ne permet pas de faire des requêtes DNS quelconques.

Une des plaies du HTC Desire est la faible capacité de la batterie. Si on joue beaucoup avec les multiples fonctions du téléphone, on est à sec avant 16h et j'ai donc dû acheter un autre chargeur pour en avoir un au bureau. C'est en partie dû au fait que le jouet est récent et que j'essaie donc beaucoup de trucs (Wifi, GPS, etc.). Pour gérer sa batterie, Android 2.2 vient avec deux outils très pratiques, le widget « Contrôle de l'alimentation » qui permet d'activer et de couper très facilement les services comme le WiFi, Bluetooth ou le GPS. Et le second est dans Paramètres -> À propos du téléphone -> Batterie, l'option « Utilisation de la batterie » qui permet d'avoir une jolie représentation graphique des services les plus consommateurs. Sur le market, on trouve en outre Battery Booster Lite qui permet de couper automatiquement les services la nuit, endormant ainsi le téléphone sans qu'il consomme de l'énergie. Comme plusieurs applications du Market, la version gratuite n'offre qu'une partie des services annoncés. C'est encore pire pour son concurrent Power Manager, que je n'ai donc pas retenu. Quant à Juice Defender, il ne peut même pas se configurer sans une connexion 3G. Viré également.

Une autre approche pour économiser la batterie est celle du gestionnaire d'applications. Il en existe beaucoup, la plupart permettent de tuer automatiquement les services désignés, avec liste de ceux à ne jamais tuer et ceux à tuer plus vite. Mes deux préférées sont Task Killer Pro et Advanced Task Killer. Un peu au pifomètre, j'ai retenu ce dernier. TaskKiller a l'air prometteur aussi. Je n'ai pas gardé longtemps Process Manager, dont les réglages sont uniquement dans une langue asiatique ou Task Manager, qui n'offre rien de particulier. En combinant ces gestionnaires d'applications, et un usage prudent, on peut tenir 48h.

Quand aux services de téléphonie sur IP, je les ai gardés pour un autre article.

À noter que toutes les documentations utilisateur en français sont disponibles en ligne. Quelles autres listes utiliser ? Pour les logiciels libres sur Android, il y a un bon article de Wikipédia. Sur quels forums aller pour en apprendre plus ? Membre de l'excellent réseau de sites Q&A StackExchange, il y a le très bon ForceClose. Il y a un canal IRC en anglais, #android sur Freenode, et des forums Web en français (que je n'ai pas testés, je n'aime pas les forums Web) sur http://android-france.fr/forum/. Comme sites Web en français, http://android-france.fr/, http://fr.androlib.com/ et http://www.frandroid.com/ sont intéressants. Si vous êtes un vrai geek et que vous voulez voir les sources des spécificités HTC, allez en http://developer.htc.com/ (celles d'Android, un logiciel libre, sont en http://source.android.com/). Et merci à Eric Jacoboni, Yves Agostini, Kevin Decherf, Jean-Baptiste Favre, Yves Rougy, Ollivier Robert , Claude Falguière, T1B0, Jean-Christophe Sirot, Stéphanie de Vanssay et Samuel Tardieu pour leurs conseils zavisés. Voici un sujet qui en suscite, des avis et de l'aide. :-)

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)