• 8 hours
  • Easy

Free online content available in this course.

course.header.alt.is_certifying

Got it!

Last updated on 9/4/23

Découvrez des pistes d’évolution

Votre application est maintenant dynamique et ressemble à un quiz. Bien joué ! Mais soyons honnêtes, elle nécessite quelques améliorations avant de finir sur le Play Store. Vous avez sûrement déjà des idées en tête. Voici les miennes, avec pour chaque idée quelques pistes techniques :

Récupérez les questions d’une API tierce

Pour cela, vous pourrez par exemple utiliser Retrofit qui permet d’effectuer des requêtes HTTP plus facilement.

Si vos données externes sont sur Firebase (par exemple sur Firestore), utilisez directement la bibliothèque Firebase disponible pour Android. Firebase est une très bonne solution pour développer sans trop d’efforts un backend, et elle est très populaire.

Dans tous les cas, comme nous sommes sur une fonctionnalité liée à la manipulation des données, vous l’aurez deviné, le code que vous écrirez sera dans la couche Données.

Le Repository QuestionRepository  se chargera à nouveau de faire le médiateur pour accéder aux données, comme le montre le schéma ci-dessous.

Bloc représentant le schéma initial avec la couche Données en haut contenant le Repository qui arbitre les données provenant de l’API ou de QuestionBank. Puis le ViewModel représenté sous ce bloc et enfin QuizFragment.
API au sein de la couche Données dont les données sont arbitrées par le QuestionRepository

Créez plus de questions

Aujourd’hui, SuperQuiz, c’est cinq questions seulement. Un peu léger, non ?

Sur ce point, vous pouvez imaginer créer plus de questions :

  • soit en local, de la même manière que nous l’avons fait, en ajoutant simplement des questions dans QuestionBank  et en générant à chaque lancement de quiz 5 questions choisies aléatoirement dans cette liste ;

  • soit sur une base de données externe que vous récupérez via l’API, comme vu dans le point précédent, qui se charge de vous envoyer 5 questions aléatoires ;

  • vous pouvez même aller encore plus loin en profitant au maximum du rôle de médiateur du Repository, en implémentant une logique qui récupère des questions d’une API et les stocke en local dans une vraie base de données, en utilisant Room, par exemple. Ces questions en local peuvent être utilisées plus tard pour éviter d’effectuer un appel API à nouveau.

Bref, ce ne sont que quelques idées pour offrir plus de questions à vos utilisateurs. Dans tous les cas, on se trouve côté code à nouveau dans la couche Données.

Personnalisez l’expérience de l’utilisateur

À l’heure actuelle, dans notre application, nous récupérons le nom de l’utilisateur dans un champ de saisie sur le premier écran, mais à part vérifier que l’utilisateur saisit quelque chose pour démarrer le quiz, nous ne nous servons pas de sa saisie. Un peu frustrant, non ?

Vous pouvez imaginer plein de fonctionnalités tirant profit de cette saisie. En voici quelques-unes :

  • En sauvegardant le nom de l’utilisateur en local, vous pouvez personnaliser son accueil dans l’application et l’annonce de son score. 

    • Pour sauvegarder ce genre de données simples, rien de tel que les SharedPreferences

  • En sauvegardant le meilleur score de l’utilisateur également dans les SharedPreferences, vous pouvez lui rappeler ce score dans l’interface afin de le mettre au défi.

  • En allant encore plus loin, on peut imaginer sauvegarder sur un service externe les scores de tous les utilisateurs de l’application, pour pouvoir afficher dans un nouveau fragment le classement général de tous les utilisateurs de l’application.

Déployer l’application sur le Play Store

Imaginons maintenant que vous ayez développé une application SuperQuiz au top, et que vous souhaitiez la déployer sur le Play Store.

Si vous avez simplement besoin de déployer votre application sur quelques appareils, par exemple dans votre entourage, sans passer par le Play Store, Firebase Distribution vous permet de partager gratuitement votre application. 

En résumé

Vous voilà avec plein d’idées en tête pour faire évoluer cette application. Vous disposez en plus des bases nécessaires pour structurer cette application afin de lui permettre de grandir sereinement. Vous avez franchi une étape importante qui, j’en suis sûre, vous permettra d’évoluer avec de bonnes bases dans le monde du développement d'applications Android. Bravo à vous !

Example of certificate of achievement
Example of certificate of achievement