Technique de stockage de données

Salut à  tous,



je suis en cours de développement d'une appli. Dans celle-ci, je récupère via une API les informations d'un utilisateur lorsqu'il se connecte (nom, prénom, mail , date de naissance, pseudo...). Je voudrai garder ses données au seins de mon appli mais j'hésite sur la technique à  adopter : plist? nsuserdefaults? sqlite?



j'ai commencé à  utiliser NSuserDefaults, mais c'est normalement adapté pour stocker des "préférences".



Il y a CoreData, mais j'ai déjà  bien entammé l'appli, et je ne pense pas pouvoir intégrer cela au milieu du développement.



Qu'en pensez-vous? quelle technique utilisez-vous?



Merci

Réponses

  • CéroceCéroce Membre, Modérateur
    Keychain.
  • AliGatorAliGator Membre, Modérateur
    août 2012 modifié #3
    1) Pourquoi comptes-tu faire cela ? Quel usage tu en auras ensuite ? Vérifie que l'utilisateur sera au courant que tu va conserver ses données personnelles



    2) NSUserDefaults est pratique pour stocker des petites valeurs et infos qui vont persister entre les lancements. C'est en effet typiquement utilisé pour les préférences et un moyen simple et rapide pour les gérer, d'autant que ça s'interface bien avec l'écran de Settings si tu choisis de faire un Settings.bundle pour ton appli. Mais tu peux tout à  fait l'utiliser pour stocker d'autres informations (pas forcément exposés à  l'utilisateur), par exemple le token facebook si tu t'interfaces avec Facebook, la date de dernier lancement si tu en as besoin, le nombre de lancements pour afficher une popup d'incitation à  noter ton appli au bout de N lancements, des choses comme ça...



    Le tout est de ne pas stocker une base de données entière dans les NSUserDefaults (car ce n'est pas fait pour), c'est plutôt adapté pour les petites infos isolées à  garder entre plusieurs lancements de l'appli.



    Par contre si ce sont des données personnelles, je rejoins Céroce, il est à  priori préférable d'envisager la KeyChain, pour protéger un minimum les données perso de l'utilisateur (et surtout si tu as un mot de passe qui traine, mais bon même sans pour tout ce qui est données attrait à  la vie privée c'est tjs mieux de les protéger).
  • Merci pour vos réponses !



    1) je compte conserver ces informations pour ensuite les afficher à  l'utilisateur, pour qu'il puisse les modifier et les renvoyer via une api. C'est principalement ça l'usage, et aussi de conserver l'identifiant de cet utilisateur, que je place ensuite dans mes requêtes.



    Je ne conserve pas le mot de passe de l'utilisateur, je n'y ai d'ailleurs pas accès (Oauth). En définitive je conserve juste les informations de son profil (rien d'indiscret). Je vais voir du côté de Keychain ce que ça donne.
  • je viens de jetter un oeil à  Keychain, ça a vraiment l'air adapter pour la protection des passwords, ce dont je n'ai pas besoin. Est-ce un "défaut" de stocker 4 ou 5 nsstrings qui ne sont pas des "paramètres" dans nsuserdefaults?
  • AliGatorAliGator Membre, Modérateur
    Non c'est moins secure mais ça passe, tant que tu n'as pas de mot de passe à  stocker.



    Pour le mail c'est un peu limite car donnée un peu + perso que juste nom/prénom, donc un petit curieux qui irait trifouiller les fichiers de ton iPhone (via JB par exemple) pourrait le récupérer, mais bon à  toi de voir le niveau de sécurité que tu veux. Dans tous les cas la moindre des choses est d'informer l'utilisateur de ce que tu vas faire de ses données perso.
  • ok, merci pour tes conseils, j'en prend note image/smile.png' class='bbc_emoticon' alt=':)' />
Connectez-vous ou Inscrivez-vous pour répondre.