La principale raison pour laquelle je veux avoir sur mon téléphone (ou sur mes ordinateurs) un système d'exploitation relativement ouvert n'est pas tant philosophique, elle est pratique : quand quelque chose ne me plaît pas, si je n'aime pas la manière dont la configuration est faite par défaut, je veux pouvoir changer, au moins en principe, plutôt que rester coincé sur les choix qu'auraient fait M. Google, ou M. Apple ou M. Microsoft ou je ne sais qui. Reste que ce n'est pas forcément facile.
Un exemple concret : je n'ai plus de clavier physique sur mon téléphone, comme je m'en suis déjà suffisamment plaint. J'essaie au moins de faire en sorte que cette disparition soit la moins douloureuse possible. À défaut de clavier physique qui soit un QWERTY, je veux un clavier virtuel (sur écran) qui en soit un. Mais d'un autre côté, je tape essentiellement du français, et ça ne me déplaît pas forcément d'avoir un dictionnaire qui fasse des propositions de complétion et/ou de la correction orthographique, en français. Ou même mieux, bilingue (i.e., qui considère un mot comme correct quand il existe soit en français soit en anglais — comme il m'arrive aussi de taper de l'anglais sur mon téléphone, ce n'est pas inutile). Sous Android (au moins AOSP), par défaut, ce n'est pas possible : si vous voulez taper en français et bénéficier de complétions proposées en français, il faudra supporter d'avoir à l'écran un clavier AZERTY, ce qui est plus que mes nerfs ne peuvent encaisser. Ou alors, on peut choisir un clavier QWERTY « générique » (c'est-à-dire sans langue associée), mais alors les seules complétions qu'il propose sont basées sur les noms des contacts qu'on a ou celles qu'on a manuellement ajoutées — pas complètement inutile mais pas très utile non plus.
J'ai donc voulu me fabriquer une application (méthode d'entrée)
Android qui fournisse un clavier QWERTY mais avec dictionnaire combiné
français et anglais, et tant qu'à faire ajouter quelques caractères
Unicode courants (par exemple le symbole moins, −
, qui est
différent du trait d'union -
) à des endroits relativement
facilement accessibles.
Au final j'ai réussi, mais disons que ça n'a pas été sans mal. Je
pensais naïvement que ce serait facile de prendre
l'application
clavier standard qui vient avec CyanogenMod/AOSP, la
modifier très légèrement et la recompiler, mais il s'avère que cette
chose est une horreur à recompiler (elle utilise un package
Java com.android.inputmethodcommon
qu'il faut aller
chercher dans un exemple accompagnant le SDK Android,
elle utilise des bouts de code natif, qu'il faut donc recompiler en
C++, pour lire plus rapidement les dictionnaires binaires, ceux-ci
doivent d'ailleurs être inclus sans compression dans
le APK, et il faut encore réussir à compiler un
utilitaire Java pour fabriquer un dictionnaire binaire à partir d'une
liste de mots en XML, sans compter un autre utilitaire
qui sert à fabriquer du code autogénéré). C'est fréquemment le
problème avec le logiciel libre : avoir le source est une chose, mais
les instructions pour s'en servir (et pour commencer, pour le
compiler) manquent souvent cruellement.
Si cela peut servir à quelqu'un, je suis prêt à
donner quelques indications sur comment compiler le machin sous Linux,
et/ou fournir les sources que j'ai utilisées et/ou le APK
compilé. (Je ne veux pas le mettre sur le marchand de
jouets Play Store parce que c'est juste une bidouille
rapide.)
Un autre exemple : le Firefox mobile (enfin, Fennec) que j'utilise
sur mon téléphone permet facilement de faire des recherches Google.
Mais ces recherches se font en anglais. Ça me va très bien,
l'essentiel des recherches que je fais sur Google sont effectivement
en anglais. Mais je veux pouvoir de temps en temps faire des
recherches sur Google en français (évidemment, quand on cherche un mot
spécifiquement français, la langue de recherche n'a pas grande
importance ; mais elle en a quand le terme existe dans les deux
langues, et détermine quelle langue sera privilégiée : ceci correspond
à ajouter un simple paramètre &hl=fr
dans la barre
d'adresse, ce qui est malcommode à faire sur un téléphone).
Heureusement,
Firefox permet
d'ajouter un nouveau moteur de recherche. Mais la seule manière de le
faire vraiment est de se
créer une page web
pour distribuer un fichier XML décrivant le moteur de
recherche (contrairement à ce que ce lien indique, le fichier en
question n'est pas exactement OpenSearch, d'ailleurs, c'est un truc
spécifique à Firefox), et encore, je ne sais pas pourquoi, l'icône ne
fonctionne pas. Mais bon, si ça peut servir à quelqu'un d'ajouter un
moteur de recherche pour Google en français dans Firefox pour Android,
il suffit de suivre ce lien.