Aller au contenu principal

Erreurs dans l'interface graphique

Avant la séance (2h)

Vous pouvez lire la doc d'Android sur les différents moyens d'afficher des erreurs dans un formulaire ici.

Vous pouvez également regarder la doc technique sur les snackbars et les dialogues.

Vous vous familiariserez avec les démos de la semaine affichage d'erreurs et erreurs dans retrofit.

Séance

On discutera des différents moyens d'afficher un message d'erreur: Toast, Snackbar, dialogues et erreur sur un champ texte.

On discutera du cas où il peut y avoir plusieurs erreurs au cours d'un seul appel au serveur comme dans un formulaire avec de nombreux champs. Quelle stratégie adopter: envoyer seulement la première erreur à l'utilisateur ou toutes les erreurs.

On montrera comment traduire les messages d'erreur dans l'interface.

On discutera du cas où l'erreur vient de l'absence de signal ou de réseau dans l'application.

Exercices

Exercice Toast Snackbar

Copier un de vos exercices qui envoyait une requête à un web service.

Vous devez modifier votre application pour afficher soit le résultat si ça a fonctionné dans un Snackbar soit une erreur si le serveur est inaccessible (vous testerez avec l'appareil en mode avion) dans un Toast.

Exercice un errorBody mais pas deux

En ouvrant l'exemple ici, vous devez:

  • partir le projet
  • regarder la trace d'exécution dans LogCat
  • on devrait trouver une ligne qui commence par "le corps encore "
  • selon le code cela devrait afficher le corps de la réponse HTTP (response.errorBody().string())

Dans un fichier double-errorBody.md, indique ce que tu observes, ce que tu comprends et en quoi il faut faire attention:

# comportement observé du code
bli bla blo
# ce que je comprends de ce qui se passe
bli bla blo
# comment faire pour éviter ce problème (comment accéder 2 fois au corps de la réponse d'erreur)
bli bla blo

Valide avec ton prof ce qui se passe et comment réagir.