Vous êtes sur la page 1sur 1

Formations Alternance Financements Pour les entreprises

Accueil > Cours > Développez votre première application Android > Améliorez l'expérience utilisateur

Développez votre première application Android

20 heures  Facile Licence



Mis à jour le 08/09/2021

 

Perfectionnez
Améliorez l'expérience utilisateur  votre 
application

. Récupérez le score
du joueur dans
l'activité principale

. Mémorisez les
préférences du
joueur

. Améliorez
l'expérience
utilisateur
Dans ce court chapitre, nous allons améliorer l'expérience utilisateur, c'est-à-dire nous
. Appréhendez le
assurer que le joueur soit correctement informé des différents événements, qu'il ne se cycle de vie d'une
sente pas perdu et qu'il soit heureux d'utiliser votre application. activité

. Tournez votre
Amélioration de l'expérience utilisateur
équipement : que
Avec l'implémentation que nous venons de mettre en place, vous devez constater la se passe-t-il ?
chose suivante : dès que le joueur sélectionne une réponse, la question suivante se met
Créé par
systématiquement à jour alors que le message Toast n'a même pas eu le temps de
disparaître.

Dans l'idéal, il faudrait attendre que le message Toast disparaisse pour ensuite af cher la
question suivante. Et entretemps, ce serait encore mieux d'empêcher l'utilisateur
d'appuyer sur un autre bouton.
OpenClassrooms, Leading

E-Learning Platform in
Cette section introduit des concepts qui peuvent vous paraître obscurs pour
Europe
l'instant. Si vous ne les comprenez pas tout de suite, aucun problème. Vous vous
familiariserez avec eux au fur et à mesure des prochains cours.

  
Temporisation

Nous allons utiliser ici une méthode d'attente très simple : nous allons demander au
système de patienter deux secondes avant d'exécuter notre bout de code. Cela permettra
d'attendre la n de l'af chage du message Toast. Voici le code :
java

new Handler().postDelayed(new Runnable() {

@Override
public void run() {
// If this is the last question, ends the game.
// Else, display the next question.
}
}, 2_000); // LENGTH_SHORT is usually 2 second long

La classe Handler permet de communiquer avec le système pour lui demander


d'exécuter une action. La méthode associée est postDelayed(). Le premier paramètre est
un objet de type Runnable, c'est-à-dire l'action que vous souhaitez accomplir. L'action est
déterminée dans la méthode run().

Le second paramètre est la durée d'attente, en millisecondes. Vous pouvez adapter la


durée d'attente suivant la durée d'af chage du Toast que vous avez choisie
(LENGTH_SHORT = 2 s et LENGTH_LONG = 3,5 s).

De la même manière, je vous laisse ré échir un peu et développer vous-même ce que


vous allez mettre dans cette méthode run().

Le code ci-dessus contient une fuite mémoire. Si vous souhaitez en savoir plus, je
vous invite à lire cet article. Pour le besoin du cours, nous pouvons vivre avec, je
vous promets que votre téléphone ne va pas dégouliner. Nous verrons dans un
prochain cours comment détecter et corriger ces éventuelles fuites. Merci Super
Mario.

Désactivation des clics

Dès que l'utilisateur a sélectionné une réponse et que le message Toast s'af che, il faut
l'empêcher de cliquer de nouveau sur une autre réponse, le temps d'af cher la question
suivante.

Pour ce faire, nous allons utiliser la méthode dispatchTouchEvent(). C'est une méthode de
la classe Activity, qui est appelée à chaque fois qu'un utilisateur touche l'écran. Elle est un
endroit idéal pour ignorer temporairement les clics de l'utilisateur.  Je vous invite à
surcharger cette méthode, en utilisant le raccourci   CTRL + O   (O pour Override), en
tapant les premières lettres pour trouver la méthode, puis en appuyant sur la touche  
Entrée   . La signature de la méthode est la suivante :
java

public boolean dispatchTouchEvent(MotionEvent ev);

Le booléen renvoyé permet de dire au système si l'action de l'utilisateur doit être prise en
compte ou non. Si l'action doit être ignorée, renvoyez false. Sinon, appelez la méthode de
la classe mère. Par exemple, l'implémentation pourrait être :
java

return mEnableTouchEvents && super.dispatchTouchEvent(ev);

Il vous suf t simplement de gérer un attribut de classe (nommé mEnableTouchEvents),


et de le valoriser à true lorsque les actions doivent être prises en compte, ou à false si
elles doivent être ignorées.

Récapitulons en vidéo
Retrouvez ces différentes étapes dans la vidéo ci-dessous :

En résumé
La classe Handler permet de communiquer avec le système pour lui demander
d'exécuter une action. 
Pour désactiver les clics, utilisez la méthode dispatchTouchEvent().

Notre application est maintenant plus ef cace : le joueur comprendra mieux le déroulé
du jeu, et ne sera pas surpris entre deux questions. Nous sommes proches du but ! 😃
Dans le prochain chapitre, nous nous pencherons sur le cycle de vie d'une activité !

J'AI TERMINÉ CE CHAPITRE ET JE PASSE AU SUIVANT

MÉMORISEZ LES PRÉFÉRENCES DU APPRÉHENDEZ LE CYCLE DE VIE D'UNE


 
JOUEUR ACTIVITÉ

Les professeurs
Florian Ponroy
Florian Ponroy, formateur Android, diplômé de l'Université Paris 6 (DESS Téléinformatique)

Virgile-Giovanni Fantauzzi
Virgile FANTAUZZI, ingénieur architecte logiciel, free-lance dans le développement mobile et formateur Android

Vous aimerez peut-être aussi