Travail 2 : gestion des images.
Serveur avec gestion des images
Le code du serveur avec stockage des images est fourni ici.
Vous pourrez utiliser le code du serveur localement.
Dans la phase 2, vous intégrerez les images dans votre application au niveau des tâches:
- Dans le détail d'une tâche, on pourra lui associer une image
- Dans la liste d'accueil, on verra une miniature de l'image de la tâche s'il y en a une
Repository Git
(Ces points sont conditionnés à la remise d'un commit toutes les 2 séances de cours.)
Tu utilises le même repo que pour le TP1.
2 points Un minimum de 6 commits de tailles comparables. Tu peux viser un commit par appel au serveur implanté.
Il n'y a pas un commit avec tout dedans et les autres vides. Les commits décrivent l'avancement du projet dans un français correct (passe Word). Ces points sont conditionnés à la remise d'au moins un commit par semaine de cours.
Ajout d'une image
Interface
Vous ne changerez pas l'écran de création d'une tâche. L'ajout d'une image ne se fait que sur l'écran de détail.
Vous devez ajouter un bouton à votre choix dans l'écran de consultation / détail d'une tâche. On veut que:
- 1 point l'appui sur le bouton donne accès aux photos de l'appareil on ne peut sélectionner qu'une seule image
- 1 point cette image est envoyée au serveur et associée à la tâche avec le service web approprié (URL
/file
) - 1 point l'image est ajoutée dans l'écran de consultation courant
- 1 point s'il y avait une image, on la remplace
ATTENTION SI CETTE ETAPE NE MARCHE PAS, VOUS NE POUVEZ PAS FAIRE LA SUITE.
Accès Réseau
Vous devez charger le détail de la tâche: /api/detail/photo/{id}
GET prend l'id de la tâche et renvoie un TaskDetailPhotoResponse .
Écran d'accueil / liste
Interface
Vous devez modifier la liste de l'écran d'accueil pour afficher les images pour les tâches qui en ont une.
- 2 points La mise en page doit fonctionner bien avec ou sans image (URL
/file/{id}
) - 1 point La taille de l'image téléchargé correspond à la taille affichée
- 1 point On a un indicateur graphique que les images chargent si ça prend du temps
Accès Réseau
/api/home/photo
en GET reçoit une liste de HomeItemPhotoResponse.
Suppression de tâche
2 point Vous devez être capable de supprimer une tâche à partir de sa page de détail.
Ces points sont conditionnels à la complétion de l'exercice des séances 9.1 et 9.2, et à ce que le code serveur ait été fait en classe, en équipe de 2. Votre enseignant doit avoir validé avec vous le code serveur.
Récupération de la session
2 point Si l'utilisateur est connecté et qu'il ferme complètement l'application, sa session devrait toujours être active lors de la prochaine ouverture de l'application. Il n'aura donc pas besoin de se reconnecter.
Retour sur l'application
2 point Si l'utilisateur est connecté et qu'il réduit l'application, et qu'il la réouvre, il faut rafraîchir les informations présentement affichées. Cela doit être fait sur les pages suivantes :
- Liste
- Détails
Multilingue
2 points Vous devez coder les langues FR et EN dans vos applications. Tous les éléments de l'interface doivent être traduits (bouton, snackbars, messages etc.).
Messages d'erreur
3 point Votre application doit afficher des messages d'erreur significatifs. Cela inclut les cas où l'utilisateur donne de mauvaises données (validation), les erreurs d'accès au serveur etc. Cet aspect sera corrigé sur:
- la création d'un compte : message si les mots de passe ne concordent pas, si l'accès réseau est impossible, si le nom utilisateur est déjà pris etc.
- l'écran de la liste de tâches : message si pas de réseau, vous devez fournir une option pour recharger les données dans ce cas.
Indicateurs d'attente
2 point Vous devez donner un indicateur visuel quand votre application attend un retour du serveur. Vous devez également vous assurer qu'un utilisateur ne peut pas déclencher plusieurs fois l'action alors qu'elle est encore en cours de traitement. Vous devez aussi vous assurer que l'interface redevient fonctionnelle après l'attente. Cet aspect sera également corrigé sur:
- la création d'un compte
- l'écran de la liste de tâches
Orientations
2 point Votre application doit être fonctionnelle en portrait et en paysage.
2 points Vous devez déployer votre application sur le PlayStore de Google. Vous ajouterez votre professeurs dans les testeurs de votre canal alpha.
Fonctionnement global
4 points négatifsVotre application doit fonctionner sans plantage et correctement. Ce pointage fonctionne en négatif. Si l'application fonctionne correctement en tout temps, vous conservez votre note. Dans le cas contraire, vous perdez des points avec un maximum de 4. Essayez votre application sur un téléphone 5 pouces (Pixel 2) en mode portrait.
- plantage de l'application -1 point
- interface illisible -1 point
- information affichée incohérente -1 point
- autre cas ...