Depuis la publication de mon application Bruxelles Transports pour Android il y a 6 mois, j’ai eu la chance d’avoir de nombreux retours et de voir le nombre d’utilisateurs actifs grimper à 5000, et ce sans aucune publicité.

J’avais déjà décrit en détail les fonctions de la première version dans un précédent article. Mais je n’en suis pas resté là pour autant puisque j’ai continué à publier des mises à jour ajoutant de nouvelles fonctions dignes d’intérêt dont j’aimerais vous parler ici.

Calcul d’itinéraire

C’est la fonction la plus demandée par les utilisateurs: pouvoir calculer l’itinéraire en transports en commun d’un arrêt vers un autre depuis l’application. En réalité, cette fonction est disponible pour la ville de Bruxelles depuis 3 ans dans Google Maps grâce aux informations que la STIB fournit à Google. Un utilisateur averti jonglera donc entre deux applications pour obtenir toutes les informations dont il a besoin, et potentiellement faire deux fois les mêmes recherches de lieux. Que les utilisateurs soient au courant ou pas de cette fonction dans Google Maps, il paraît néanmoins logique que le point de départ d’une recherche d’itinéraire soit l’application des transports en commun.

C’est pourquoi j’ai ajouté une fonction dans Bruxelles Transports qui lance directement la recherche d’itinéraire en transports en commun dans l’application Google Maps avec tous les bons paramètres, une fonction rendue possible par la grande flexibilité d’Android.

Concernant l’aspect pratique de l’utilisation de cette fonction dans l’app, j’ai eu l’idée suivante: l’utilisateur doit d’abord avoir ajouté l’arrêt de départ dans ses favoris. Ensuite, il sélectionne la fonction “itinéraire” qui est disponible en tant qu’action contextuelle sur n’importe quel arrêt et une boîte de dialogue s’ouvre avec l’arrêt en question sélectionné en tant qu’arrêt de destination. Il peut alors alors choisir entre sa position actuelle ou un arrêt favori en tant qu’arrêt de départ et il n’a plus qu’à confirmer pour lancer la recherche dans Google Maps.

L'écran d'itinéraire

Cette interface a pour mérite de rendre la sélection simple et rapide. En effet, inclure l’arrêt de départ dans ses favoris a du sens puisque l’utilisateur va probablement ensuite consulter les temps d’attente pour celui-ci. De plus, quand il veut planifier un trajet il partira souvent d’un arrêt familier qui a déjà de grandes chances d’être en favori. Pour le trajet de retour, s’il est sur place il n’aura qu’à sélectionner la position courante comme point de départ. Il est bien entendu également possible de planifier un itinéraire entre deux arrêts favoris depuis l’écran des favoris, en commençant par sélectionner un favori en tant que destination.

Optimisation pour tablettes

L’application fonctionne très bien sur tablettes depuis sa première version même si l’affichage n’était pas vraiment optimisé pour ce support. J’ai entamé un processus d’optimisation de certains écrans afin de mettre à profit l’espace d’affichage supplémentaire disponible, en particulier en mode paysage.

Tout d’abord, j’ai implémenté un nouveau mode d’affichage sous forme de grille pour la liste des lignes, qui rend particulièrement bien sur tablette (mais peut aussi être utilisé sur téléphone). Ce mode d’affichage est activable dans les options. Pour réaliser cela, j’ai dû créer mon propre composant Android de grille divisée en sections (il en existait déjà un, mais la qualité du code laissait à désirer).

La grille des lignes sur tablette

Ensuite, j’ai modifié l’affichage de l’écran des temps d’attente sur tablette en mode paysage: l’écran se divise en deux colonnes en vis-à-vis, avec les temps d’attente en temps réel à gauche et les horaires théoriques à droite.

L'écran des temps d'attente sur tablette

Je compte continuer à optimiser l’affichage sur tablettes à l’avenir.

Nouveaux standards d’ergonomie

Google a entamé une refonte de ses applications Android ces derniers mois et a introduit de nouveaux standards d’ergonomie que j’ai décidé de suivre moi aussi.

Tout d’abord, lorsque des actions contextuelles sont disponibles sur des arrêts, j’ai ajouté une icône de 3 petits points dans la partie droite de la cellule de liste. Ceci donne directement à l’utilisateur une indication de la disponibilité de ces actions. Lorsqu’il clique dessus, un menu popup contextuel s’ouvre sous la zone cliquée. Le menu peut également s’ouvrir via un appui long sur la cellule.

L'écran des favoris

Auparavant, un appui long sur la cellule ouvrait déjà un menu contextuel différent mais très peu d’utilisateurs étaient au courant de cette fonction, notamment parce qu’il n’y avait pas d’indication visuelle.

Google a standardisé le menu coulissant depuis le bord gauche de l’écran, qu’on retrouve maintenant dans les applications Google Play Musique, YouTube et autres. J’ai modifié le menu d’accès rapide aux arrêts récents sur l’écran des temps d’attente afin d’utiliser le même composant.

Le volet des arrêts récents

Enfin, j’ai utilisé les nouveaux outils fournis par Google permettant d’utiliser l’Action Bar et les menus d’Android 4 sur les versions plus anciennes d’Android. Le seul changement visuel par rapport aux outils que j’utilisais précédemment est que le menu étendu sur les téléphones Android 2.x a maintenant la même apparence que dans Android 4, ce qui lui permet d’être plus clair et d’afficher plus d’options. Ci-dessous une comparaison entre l’ancien et le nouveau sur un ancêtre (HTC G1):

L'ActionBar avant et après

Alertes intelligentes

Suite aux annonces de la conférence Google I/O 2013, j’ai voulu aller beaucoup plus loin et implémenter une fonction unique qu’on ne trouvait jusqu’alors dans aucune autre application de transports en commun. En l’occurrence, une fonction permettant de résoudre un problème courant: ne plus manquer l’arrêt où vous devez descendre lorsque vous êtes à bord d’un bus ou d’un tram. Un indicateur de progression est installé dans certains véhicules mais n’est pas toujours présent ou visible, et il se peut aussi que vous soyez simplement occupé(e) à faire autre chose que surveiller sa progression. C’est là qu’intervient votre smartphone: imaginez qu’il puisse sonner et vibrer de façon distincte au moment opportun pour vous avertir qu’il est temps de vous préparer à sortir à l’arrêt suivant. C’est exactement ce que j’ai réussi à implémenter et vous pouvez le tester dès aujourd’hui à Bruxelles, pour peu que vous ayez un smartphone fonctionnant sous Android 2.2 ou plus récent.

J’ai utilisé pour cela les nouvelles fonctions avancées de géolocalisation que Google a rendues disponibles sur ces appareils dernièrement et qui aident grandement à la création d’applications dites contextuelles. Mon application détermine un périmètre précis entre l’arrêt de destination et l’arrêt précédent afin que l’utilisateur ne soit averti ni trop tôt ni trop tard. Elle calcule ensuite à intervalles réguliers la position de l’appareil grâce aux nombreuses antennes WiFi à Bruxelles (le GPS fonctionne mal dans un bus, encore moins dans une poche) et avertit l’utilisateur dès qu’il entre dans le périmètre.

Mieux encore: l’application détecte si l’utilisateur est actuellement à pied ou dans un véhicule en mouvement afin d’ajuster la fréquence à laquelle elle calcule sa position, afin de consommer le moins d’énergie possible tout en s’assurant que l’utilisateur sera prévenu à temps.

Il m’a fallu plus d’un mois de tests et expérimentations pour arriver à cette solution que je trouve très élégante. Bien sûr il existe des contraintes: cela ne fonctionne pas en sous-sol et moins bien dans quelques zones peu habitées de Bruxelles et il faut avoir activé le WiFi et disposer d’une connexion de données 3G.

Activation de l'alerte de proximité

L’interface est très simple: l’utilisateur se rend sur l’écran d’itinéraire d’une ligne, dans la direction qu’il doit prendre. Il sélectionne ensuite la fonction “alerte de proximité” dans le menu d’actions contextuelles de l’arrêt où il veut descendre et un indicateur d’alerte apparaît à côté de celui-ci. Une seule alerte peut être programmée à la fois. Ensuite il n’a rien d’autre à faire et il peut fermer l’application s’il le souhaite: tout se déroule en arrière-plan. L’alarme se déclenchera même si son smartphone est verrouillé dans sa poche. Il recevra un avertissement dans sa barre de notifications avant d’arriver à destination, peu après son arrivée à l’arrêt précédent. L’alerte est automatiquement désactivée si elle n’a pas été déclenchée après 2 heures.

Extension DashClock

Depuis Android 4.2, il est possible d’ajouter de widgets sur l’écran de verrouillage de votre téléphone ou tablette. DashClock est un widget indispensable conçu pour être utilisé en tant que widget principal sur l’écran de verrouillage, en remplacement de l’horloge système. Il permet d’afficher toutes sortes d’informations utiles à côté de l’heure: nombre d’e-mails non lus, météo, appels manqués, etc. L’aspect le plus intéressant est que les applications peuvent fournir des extensions supplémentaires pour DashClock.

J’ai donc eu l’idée de créer une extension pour Bruxelles Transports qui fonctionne en complément de l’écran des temps d’attente aux arrêts. Lorsque l’utilisateur consulte les temps d’attente d’un arrêt situé à moins d’1 km depuis l’application, le widget s’active et affiche les temps d’attente en temps réel de cet arrêt directement sur l’écran de verrouillage de son appareil. Les temps d’attente sont actualisés ponctuellement au moment précis où l’écran est allumé. Après 30 minutes ou s’il s’éloigne de l’arrêt, le widget se désactive automatiquement. L’application effectue donc le minimum de requêtes réseau possible.

L'extension DashClock en action

Bruxelles Transports est disponible gratuitement sur le Play Store et compte environ 5000 utilisateurs au moment où j’écris ces lignes. J’ignore toujours pour combien de temps cette application pourra rester disponible étant donné son caractère officieux, donc profitez-en dès à présent! J’espère également que la STIB tiendra compte de ces avancées pour ses futures mises à jour officielles.

Christophe Beyls