Partage
  • Partager sur Facebook
  • Partager sur Twitter

Persitance des données

Sujet résolu
    11 juin 2020 à 12:01:13

    Bonjour,

    J'ai une application de gestion de projet avec un système de connexion / inscription. Les projets que l'utilisateur créer persistent dans l'application grâce à la communication entre activités mais quand l'utilisateur se déconnecte ou quitte l'application les projets repartent à 0...

    Je me suis renseigné sur la persistance de données sous android mais je ne sais pas quelle technique utiliser pour faire que les projets de l'utilisateurs persiste tout le temps quand il se connecte sur sa session. J'avais penser à un système de stockage des projets (comment faire cela ?) sur un serveur qui permettrai de charger les projets dès que l'utilisateur se connecte pour la première fois (cela me permettrai en plus de coder par la suite un partage des projets entre utilisateurs). Pensez vous que c'est une bonne solution ? Comment réaliser cela ? 

    (Sachant que pour l'instant mes projets ne sont juste qu'une classe java. Il faudrait donc les convertir en fichier pour ensuite les stocker ?)

    Merci d'avance pour les réponses ! :)

    -
    Edité par PierreChalandon1 11 juin 2020 à 12:08:28

    • Partager sur Facebook
    • Partager sur Twitter
      11 juin 2020 à 12:12:26

      Salut,

      J’imagine que la représentation de la donnée est un peu complexe. Et j’imagine que tu as un Model qui represente un projet avec toutes les infos nécessaires. 

      A ce moment je vois deux solutions

      - Le stockage Local avec Realm

      - Le stockage Remote comme tu l’évoques. Ça t’obligerait a avoir une base de données Et un serveur avec lequel communiqué via une API (Ou utiliser Firebase). Si tu as déjà un système de connexion j’imagine que tu as déjà une sorte de serveur quelque part.

      La première solution a l’inconvénient de ne pas protéger les données puisque tout est sur le téléphone. A toi de voir  où tu met le curseur pour la sécurité. Elle a l’avantage d’être plus simple à mettre en place  

      • Partager sur Facebook
      • Partager sur Twitter
        11 juin 2020 à 12:16:27

        Oui en effet j'ai un serveur en local (wampserver) et une base de données phpMyAdmin pour le système de connexion (avec des requêtes php pour communiquer). L'application est pour un projet de fin d'année et n'est pas destinée à être publiée donc la sécurité passe au second plan. Avec la deuxième méthode dont tu m'as parlé est ce que je peux stocker un objet complexe (intent, un objet de classe java tout entier) et pas seulement un int ou un string comme je fais pour le système de connexion ?

        -
        Edité par PierreChalandon1 11 juin 2020 à 12:54:07

        • Partager sur Facebook
        • Partager sur Twitter
          11 juin 2020 à 13:36:39

          Non tu ne peux pas. La communication client / serveur se fait via une API, les données transitent en JSON. Il faut encoder le model pour l’envoyer et décoder le JSON pour retrouver un model utilisable (c’est pas bien sorcier)

          • Partager sur Facebook
          • Partager sur Twitter
            11 juin 2020 à 13:47:14

            Peut tu me dire avec quelle API / commande convertir un intent et tous ces extra en Json ?
            • Partager sur Facebook
            • Partager sur Twitter
              11 juin 2020 à 14:17:43

              C’est pas l’intent que tu vas convertir mais le model que tu utilises dans tes activités.
              un Intent c’est un truc Android qui ne sert à rien en dehors d’Android.  

              Tu peux utiliser Gson. (C’est une lib Android java) 

              Tu devrais te renseigner sur ce qu’est une API. C’est la partie difficile de ce que tu souhaites faire

              • Partager sur Facebook
              • Partager sur Twitter
                11 juin 2020 à 14:36:54

                Très bien merci je vais me renseigner ! De ce que je vois je peux convertir mon intent en Bundle puis ce Bundle le convertir en JSON, est ce que ça peut être une solution ? Je vais me renseigner sur la librairie que tu m'as donné. 

                Merci pour l'aide sur ce post et sur les autres !

                • Partager sur Facebook
                • Partager sur Twitter
                  11 juin 2020 à 15:05:33

                  Je comprend pas ce que viens faire l’intent dans l’histoire. L’intent il sert à changer d’activité en passant au besoin des données. Pourquoi ne pas convertir ces données AVANT de les mettre dans un Intent ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 juin 2020 à 15:13:39

                    Car j'ai une classe Java projet qui contient tout les intent avec les extra pour les récupérer facilement donc je pensais convertir cette classe là pour ma persistance de donnée

                    @Parcel
                    public class projet {

                    private int Test = 0;
                    private Intent Accueil;
                    private Intent Kpi;
                    private Intent importation;
                    private Intent Kpi1, Kpi2, Kpi3, Kpi4, Kpi5, Kpi6;

                    private String Kpi_1, Kpi_2, Kpi_3, Kpi_4, Kpi_5, Kpi_6;
                    private int nb_kpi;

                    public projet(){}

                    public projet(Intent Accueil, Intent Kpi, Intent importation, Intent Kpi1, Intent Kpi2, Intent Kpi3, Intent Kpi4, Intent Kpi5, Intent Kpi6){
                    this.Accueil = Accueil;
                    this.Kpi = Kpi;
                    this.importation = importation;
                    this.Kpi1 = Kpi1;
                    this.Kpi2 = Kpi2;
                    this.Kpi3 = Kpi3;
                    this.Kpi4 = Kpi4;
                    this.Kpi5 = Kpi5;
                    this.Kpi6 = Kpi6;

                    this.nb_kpi = 0;

                    Kpi_1 = null;
                    Kpi_2 = null;
                    Kpi_3 = null;
                    Kpi_4 = null;
                    Kpi_5 = null;
                    Kpi_6 = null;
                    }
                    • Partager sur Facebook
                    • Partager sur Twitter
                      11 juin 2020 à 15:44:05

                      Normalement avec une API ça ne sert plus à rien. Tu auras certainement une route pour récupérer la liste des projets et une route pour recuperer un projet. À chaque changement d‘activité tu feras donc un appel réseau pour récupérer La donnee. Plus d’extra dans les intent (en tout cas c’est comme ça que je le vois)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        11 juin 2020 à 15:49:04

                        Hmmm très bien je vais me renseigner sur les API
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Persitance des données

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown