Toast et Crouton, sortez vos grilles-pains !

Samedi 29 septembre 2012, 22:21

Bonjour à tous,

Je vais parler prochainement de plusieurs façon d’interagir avec l’utilisateur, pour l’informer, lui demander une confirmation ou autre. Dans un premier temps, je vais parler d’interaction passive, via Toast et Crouton, pour informer l’utilisateur. Plus tard nous parlerons de Dialogue et Notification. Qui sont, eux, des interactions active avec l’utilisateur, pour demander une confirmation, ou une action spécifique.

Pour reprendre les mots de Benjamin, il y a des ‘Best practice’ :

Quand vous êtes dans une activity, seul le toast, crouton ou une dialogue peut-être soulevée. Quand une action extérieure, ou venant d’un service a besoin d’informer l’utilisateur, utilisez la notification.

Aujourd’hui je vais vous parler cuisine, avec Toast et Crouton… Ha … On me dit dans l’oreillette que je ne suis pas sur le bon blog… Ce n’est pas grave, je vais parler de Toast et Crouton sur Android !

(Il ma fallut 2 mois et l’utilisation de crouton pour comprendre le jeux de mot personnellement…)

Le toast est une des façons d’informer l’utilisateur des actions qu’il a réalisé, où qui se serait produite en tâche de fond, qui n’a pas besoin d’interaction avec l’utilisateur. Je m’explique, quand je demande l’utilisation du GPS, mais que ce dernier est éteint, je demande l’activation via une dialogue. Comme mon précédent post (voir ici)

A la différence, un toast ne propose pas d’interaction, quand vous activez votre code pin (pour débloquer la carte sim) il vous annonce « code accepté » ou « carte sim débloqué ». Ou quand vous envoyez un tweet, il peut vous dire « Tweet bien envoyé », ça reste une information.

]1 Voici ce que donne un Toast beurré.

Cela à des avantages, mais quelques inconvénients. Si vous devez informer le client d’une exception soulevée, le toast est relativement discret et ne reste pas très longtemps affiché. Mais vous ne pouvez pas bloquer l’utilisateur avec une dialogue, car la dialogue demande une interactivité (un « ok » ou « annuler » pour la terminer).

Crouton, une librairie open-source, est une solution très facile à mettre en place, pour remédier à ce petit problème. Sans compter qu’il est beaucoup plus visible que son prédécesseur. Ce dernier s’utilise exactement de la même façon qu’un toast. Je lui ai trouvé deux défaut majeur.

]2 Allo Huston? On a un problème.

Le premier est qu’il est affiché sur la vue d’où il est appelé, en résumé, quand vous réalisez un crouton sur une dialogue, il est affiché sur le header de cette dernière. Cela peut-être plus visible mais si vous fermez directement la dialogue en lançant le message crouton avant, vous ne verrez pas le message car la dialogue sera fermée. A l’instar du Toast qui sera visible même si vous fermez l’application.

Le deuxième est qu’il demande une activity, dont je préfère largement l’utilisation du context, plutôt que l’activity elle-même. Mais c’est une question d’habitude. (Pour marquer l’utilisation de context, le lancement du Toast, la création d’une activity, une dialogue et même une notification, un context suffit amplement. Mais je pense que cela peut-être modifiable.) Voyons le code pour générer un Toast.

Toast.makeText(getApplicationContext(), "Toast de base", Toast.LENGTH_LONG).show();

Le premier paramètre est le context, le second un text qui peut-être enregistré dans le fichier strings, dans le dossier value (récupérable via getString(R.strings.votretext)).

Le dernier paramètre est le temps d’affichage (LONG ou SHORT).

Voyons Crouton maintenant.

Crouton.makeText(this, "Crouton INFO !", Style.INFO).show();

Les paramètres sont, l’activity, le texte, et un style. Le style est défini dans le projet de Crouton, qui pour rappel sont quatre simple fichiers.

Il y a 3 styles défini de base; Info, Alert, Confirm. Info et Confirm seront affichés durant 3 secondes, Alert sera affiché 5 secondes. Chacun a sa propre couleur, info est bleu, confirm vert et alert en rouge.

J’ai réalisé un projet, récupérable à cette adresse. Merci pour la lecture, et bonne journée !

A propos de l'auteur
Laurent

Développeur Java & mobile, plus particulièrement sur Android, passionné par les technologies mobile et la S-F, je travail pour VLS Henrotte une entreprise basé à Liège. Autodidacte, motivé et surtout très ouvert à tout ce qui approche de l’innovation ou la révolution, je partage mes connaissances ou mes sources. Je suis aussi un twitterfou

Laisser un commentaire