Développement de l'écran de connexion

Objectif

Mettre en place le design et le système de connexion utilisateur en local

Contexte

Pour que chaque utilisateur puisse disposer d'un score il doit pouvoir être identifiable indépendamment et doit donc pouvoir se connecter grâce à son identifiant.

Fondamental

Nous allons suivre un design simple permettant la connexion de l'utilisateur grâce à un identifiant et un mot de passe.

Dans un premier temps, les identifiants sont stockés en données brutes puis stockés sur Room quand l'application y sera connectée.

L'écran de connexion sera la première activity appelée au lancement de l'application et renverra l'utilisateur vers le quiz ou affichera une erreur en cas de mauvais identifiant.

Pour le bloc de connexion, nous utiliserons un LinearLayout qui contient nos deux editext et notre bouton de connexion.

Pour le code, nous suivons le modèle MVVM pour garder une séparation des rôles bien distincts. Nous avons donc LoginActivity qui a le rôle de View en affichant les éléments de l'UI et LoginViewModel. Il se charge de contrôler les identifiants de connexion.

LoginViewModel :

On définit la LiveData recevant un boolean qui dépend de la validité des informations de connexion (ici pour l'utilisateur « Josh » avec le pass « 0415 »).

LoginActivity :

Gestion du clic de connexion

En cliquant sur le bouton de connexion on envoie les identifiants à la fonction login définie précédemment dans notre viewModel.

Observation de la livedata

On observe la LiveData définie dans le viewmodel, chaque nouvelle connexion update la valeur de loginResult qui est transmise à processLogin() pour procéder aux changements côté UI.

Traitement du résultat de connexion

Le résultat de la connexion est traité ici. On lance l'activité suivante si la connexion est bonne, dans le cas contraire, on affiche un Toast.