Comment créer une page pour mettre un login ?

Bonjour,
Je travaille sur ma 1ère app, type QCM, et pour le moment ça marche mais sans notion de score ou de joueur.
Selon vous, quel moyen dois je mettre en œuvre pour créer un écran pour créer un compte (pseudo et âge) et ainsi comptabiliser des scores ?
Plutôt importer un framework pour jeux ou par du codage ?
Merci

Hello,

La question c’est de savoir si tu veux faire que du local sur le telephone ou du réseau.
Si tu fais du réseau avec des comptes partagée, il faut pas uniquement s’occuper de la partie iphone, il faut aussi s’occuper de la partie serveur.

A partir de la les possibilités sont infinies.

  • Tu fais ton propre serveur api (en php, node, ce que tu veux)
  • Tu utilises un CMS existant (drupal, wordpress, …) sur lesquel tu active des modules API REST
  • Tu utilisés un outil type Firebase
  • Tu utilise de l’OAuth facebook, twitter, google…

Comme tu veux en fait, il n’y a pas d’obligation ou d’interdiction tant que tu as un serveur avec lequel communiquer.

En fait c est uniquement du local…

Alors si c’est du local, tu peux utiliser soit :

UserDefault. Simple mais pas recommandé pour ce genre d’usage.

Mais je recommande perso
Realm

C’est facile à mettre en place et il y a meme un cours sur ça sur ce site :slight_smile:

N’hésite pas à demander.

Euh … je ne vois pas ce qu’un framework de jeux peut t’apporter dans ce cas précis.

Pour le reste … tout dépend de ton projet. Veux-tu conserver un historique statistique de chaque partie : identification du joueur, score, durée, etc … Ou juste mémoriser les meilleurs scores comme dans un jeu vidéo ?

Dans les deux cas, tu as besoin d’un système de persistance des données. C’est expliqué dans les cours.

Je ne souhaite que garder en mémoire les meilleurs scores, donc je vais partir sur l utilisation de Realm avec la création d une Class Player : pseudo, âge, high score theme 1, high score theme 2,…
Par contre (mais je n ai pas encore tout suivi) je n ai pas vu dans le cours le chapitre qui explique la logique à utiliser dans le cas d un login : en gros, l app sait que c est bidule qui joue et qu il à y ans… c est une logique à intégrer via le codage directement ? Merci

En général :

  • Ecran choix utilisateur : [login][pass][ok]
    => Enregistrement dans les UserDefault de l’id de l’user

  • Ecran de jeu

  • Fin du jeu, mise a jour du score pour l’user [id] qui est stocké.

Ceci n’est qu’une possibilité parmi tant d’autres.
Ce quil faut penser c’est conserver l’utilisateur d’un ecran a l’autre, soit par segue, soit par une variable quelque part, soit par une userDefault, ou dans une table realm.

En code il n’y a pas de solution miracle, juste des concept que chacun implémente comme il le veut.

Ne t’embête pas à gérer des comptes et des identificateurs de joueurs. C’est casse-pied de devoir s’identifier à chaque début de partie, sachant qu’on bat rarement un score.

Utilise un mécanisme de persistance pour garder la liste des 10 meilleurs scores (score/nom du joueur/date). A la fin d’une partie, compare le score courant avec les scores enregistrés.

cas 1/ c’est le meilleur score jamais réalisé dans le jeu
=> affiche une vue en superposition sur l’écran avec un message de félicitations « Bravo … bla bla … meilleur score ! Quel est votre nom ? ». Récupère le nom avec un UITextField, ajoute le nouveau score à la liste (qui possède maintenant 11 scores), fait un tri du tableau et ne conserve que les 10 meilleurs scores avant de les enregistrer.

cas 2 / le score du joueur est inférieur au meilleur score, mais supérieur au 10iéme score enregistré.
=> affiche une vue en superposition sur l’écran avec un message « Bravo, vous avez fait un excellent score ! Quel est votre nom ? ». Ensuite même procédure : récupération du nom avec un UITextField, ajout du score à la liste, une opération de trie sur le tableau pour insérer le nouveau score à sa juste place, puis élimination du dernier élément de la liste pour n’archiver que les 10 meilleurs.

cas 3/ le score du joueur est inférieur au dernier score de la liste des meilleurs. Dans ce cas on ne lui demande pas son nom (l’histoire ne se souvient que des vainqueurs). Et propose lui directement de faire une nouvelle partie.

C’est le mécanisme utilisé par la plupart des jeux vidéo.

Merci à vous 2, ces éclairages m aident bien et je vais me lancer ds le bain demain.
Je vous remercie pour le temps accordé.
J espère pouvoir faire de même dans quelques temps quand j aurai plus d expérience :smile: