Documentation autorisée: Tout ce que vous avez produit pendant le cours, ainsi que les repository utilisés et présentés pendant le cours.

Durée: Vous avez 3 heures pour compléter l'examen. En cas de 1/3 temps supplémentaire : 4 heures.

HTTP: Pour permettre les accès HTTP en plain text, n'oubliez pas de

  • prendre un émulateur en API Marshmallow ou Nougat
  • OU
  • ajouter android:usesCleartextTraffic="true" dans le manifest

Serveur: Le serveur est fourni et doit être accédé en local via 10.0.2.2:8080 (émulateur) ou votreAdresseIP:8080 (appareil)

Gestion des erreurs

Créer un projet avec un champ pour entrer une valeur numérique et un bouton qui envoie une requête au serveur et récupère la réponse.

  • 1 point Envoyé en GET sur l'URL /api/final/1/{nombre} qui renvoie le nombre divisé par 10 si le nombre est un multiple de 10
  • 1 point L'application affiche le résultat de la requête quand il n'y a pas d'erreur via un Toast.
  • 1 point Si le nombre envoyé n'est pas un multiple de 10, vous devez afficher un message significatif dans un snackbar.
  • 1 point Si il n'y a pas de réponse du serveur, vous devez afficher un message d'erreur dans un Toast.

Attente et traduction

Créer un projet avec un bouton qui envoie une requête au serveur.

  • 1 point Le titre dans l'ActionBar doit être "Final Attente" et le texte du bouton doit être "Aller au serveur".
  • 2 points Un appui sur le bouton déclenche un envoi en GET sur l'URL /api/final/0. Cet appel va être long: pendant l'attente entre l'envoi et la réponse, vous devez trouver un moyen de montrer qu'un appel est en cours dans l'interface et désactiver le bouton.
  • Une fois l'attente terminée, affichez un message dans un Toast pour indiquer que tout s'est bien passé.
  • 1 point L'indicateur d'attente doit disparaître même si on ne reçoit pas de réponse du serveur (échec réseau).
  • 1 point Vous devez traduire le titre de l'activité, le texte du bouton ainsi que le message de confirmation en anglais pour rendre votre application multilingue.