Technique de stockage de données
Astram
Membre
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
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
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
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).
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.
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.