IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Persistance des données : SQLite / SharedPreferences / Les deux ?


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 61
    Par défaut Persistance des données : SQLite / SharedPreferences / Les deux ?
    Bonjour à tous,

    Je suis devant un problème que je n'arrive pas à résoudre : comment dois-je gérer la persistance des données dans mon application Android ?

    Je dois stocker beaucoup de données, très confidentielles pour certaines, et je ne sais pas trop comment procéder.

    Étant données que mes données peuvent être pour la plupart structurées, j’envisageais de faire une BDD SQLite. Seulement voila, j'ai peur d'utiliser trop de mémoire avec des requêtes intempestives.

    Par exemple, je dois a chaque activity (et j'en ai pas mal !), savoir si mon utilisateur à un compte dans mon application (et en connaitre les détails). Comment faire au mieux dans pareil cas ? Je me vois mal faire une requête sur chaque activity pour voir si un compte existe !

    J'ai donc pensé a SharedPreferences, mais j'ai l'impression que c'est pas vraiment destiné a stocké ce genre d'information, puis pour les informations structurées, le moins que l'on puisse dire, c'est que ce n'est pas du tout adapté.

    J'ai également pensé à utiliser une BDD et à exécuter une seule fois toutes les requêtes à la première activity puis à les stockées dans sharedPreferences, mais j'ai l'impression que cette idée est encore pire et provoque une redondance de données inutile.

    Vient ensuite la question de la confidentialité des données. Si je perd mon portable, je ne veux pas que n'importe qui accède aux données stockées.

    Bref, avez vous des conseils sur la manière dont je dois procéder ? N'hésitez pas à me demander plus de détails si nécessaire :=)

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Je pense que ton probleme n'est pas aussi compliqué dans la mesure s'il s'agit de checker simplement si l'utilisateur à un compte...Il suffit de checker une seule fois et passer cette parametres entre les differents activity pour les informer si un compte existe ou pas.

    Dans tous les cas, SharePreference n'accepte pas des données importantes.
    SQLite c'est pour des données importantes mais requetes lourds.

    Question securité,je te signale que la base Android peut etre lis sur n'importe qu'elle appareil, par contre il y'a des données private à chaque application non accessible ailleurs.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 61
    Par défaut
    Tout d'abord, merci pour ta participation :=)

    Citation Envoyé par jahbromo Voir le message
    Je pense que ton probleme n'est pas aussi compliqué dans la mesure s'il s'agit de checker simplement si l'utilisateur à un compte...Il suffit de checker une seule fois et passer cette parametres entre les differents activity pour les informer si un compte existe ou pas.
    Faux ! Il ne faut pas juste de checker si l'utilisateur à un compte, je me suis peut être pas bien fait comprendre : il faut également récupérer ses informations de compte (nombreuses) qui nécessiteront d'être affichés dans plusieurs activity différentes. Alors effectivement, l'information primordiale est de savoir si l'utilisateur à un compte, car l'activity lancé sera pas la même selon si c'est le cas ou pas. De plus, c'est pas un peu bourrin de devoir se trimballer l'info d'activity en activity via les intents ?

    Citation Envoyé par jahbromo Voir le message
    Dans tous les cas, SharePreference n'accepte pas des données importantes.
    SQLite c'est pour des données importantes mais requetes lourds.
    Qu'entends tu pas "n'accepte pas des données importantes" ?

    Citation Envoyé par jahbromo Voir le message
    Question securité,je te signale que la base Android peut etre lis sur n'importe qu'elle appareil, par contre il y'a des données private à chaque application non accessible ailleurs.
    Je ne comprends pas ce passage, peux tu être plus précis STP ? Tu veux dire que le mode private permet aux autres apps de ne pas y toucher mais ne permet pas à une personne quelquonque de lire les données ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 61
    Par défaut
    Personne pour répondre à mes interrogations ?
    J'ai eu une idée, c'est de faire une classe static avec un pattern singleton, mais je ne sais pas si c'est une bonne idée. En plus, je ne sais pas si je dois faire des requêtes a chaque fois que j'ai besoin de données dans cette classe (lourd), ou faire une fois les requêtes et les stockés dans les variables globales de ma classe (redondance des données avec une écriture toujours doublée)

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Alors effectivement, l'information primordiale est de savoir si l'utilisateur à un compte, car l'activity lancé sera pas la même selon si c'est le cas ou pas. De plus, c'est pas un peu bourrin de devoir se trimballer l'info d'activity en activity via les intents ?
    Je vois pas vraiment de problème à celà. Tu créer un objet Utilisateur qui implémente Parcelable avec tous ce qu'il faut dedans, puis tu le transmet simplement d'activité en activité. Ça me semble être le plus simple et le plus souple.
    Après si effectivement ton objet Utilisateur fait 3 Mo faudra peut ête réfléchir à une autre solution
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 61
    Par défaut
    OK merci pour ta réponse.

    Je pense pas que cela réponde à ma dernière question : "En plus, je ne sais pas si je dois faire des requêtes a chaque fois que j'ai besoin de données dans cette classe (lourd), ou faire une fois les requêtes et les stockés dans les variables globales de ma classe (redondance des données avec une écriture toujours doublée)".

    Et pourquoi préférer l'envoie de cet objet d'activité en activité plutôt qu'une classe static singleton ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Persistance des données
    Par gdnico dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 16/05/2007, 17h31
  2. Réponses: 2
    Dernier message: 19/04/2007, 16h59
  3. [Debutant]Recuperer des données signé et les renndre non signées
    Par parp1 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/02/2007, 14h01
  4. Persistance des données en mémoire
    Par giviz dans le forum Architecture
    Réponses: 13
    Dernier message: 21/12/2004, 09h44
  5. [Strategie]persistance des données
    Par altropus dans le forum Persistance des données
    Réponses: 6
    Dernier message: 04/11/2004, 04h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo