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

API standards et tierces Android Discussion :

Une Classe pour Gérer les Requêtes Serveur ?


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Par défaut Une Classe pour Gérer les Requêtes Serveur ?
    Bonjour à tous . Je suis entrain d'essayer de développer l'application Android du site coursdegratte.com et étant plutot novice en programmation ( environ 1 an ) j'ai un petit soucis.
    J'ai commencé à apprendre android il y a environ 1 mois et à force de test pour apprendre , le code est un peu bordélique .

    L'application aura différentes requêtes serveur à faire et j'aurais aimé faire une classe centralisé ou j'aurais regroupé les différentes requêtes. Malheureusement, mes différentes tentatives se sont soldés par des échecs . Si je met les requêtes serveurs dans l'activité qui en a besoin, j'ai pas de soucis pour récupérer les données.

    J'utilise Volley pour faire les requêtes et en fait je me demandais si c'était tout simplement possible de faire une classe avec une méthode qui fait la requête et ensuite la récupérer dans l'activité ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
    //Dans ce style
    MyClassRequestServer requestServer = new MyClassRequestServer();
     
    //Et ensuite par exemple si je veux récupérer les données d'un user
    User user = requestServer.getUserInfo(user_id);
     
    //Et si je veux la liste des tutos
    List<Tuto> tuto = requestServer.getAllTutos();
     
     
     
        }
    Dans tous mes tests, à chaque fois, j'arrivais à récup les données dans la classe RequestServer, mais dans l'activité quand j'instanciais la classe et appelais la méthode, j'avais toujours un sympa Null en guise de retour.

    Je sais pas si je suis bien clair dans mes explications . N'hésitez pas à me le dire si ce n'est pas le cas.

    EDIT : Pour simplifiez, la question serait : Comment "sortir" les données récupérer par la fonction OnResponse de Volley pour l'utiliser en dehors ?

    Voici le github de l'application en l'état actuel pour infos ( les test ne sont pas présent, j'avais fait ça sur un "projet" à part pour tester justement ).

    https://github.com/Ipsaous/CoursdeGratte

    Merci et bonne journée

  2. #2
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Le code que tu souhaites serait valide si Volley fonctionnait de manière synchrone. Mais ce n'est pas le cas : c'est pourquoi il existe la méthode callBack onResponse() (qui sera invoquée à un moment que tu ne contrôle pas, voir même jamais). En conséquence, quelque soit la manière dont tu t'y prend pour coder, ton Activity aura aussi une méthode de callBack pour récupérer les données.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre habitué
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Par défaut
    Oki . Organiser le code va être plus compliqué que prévu . J'ai pas fini de me prendre la tête.

    Tiens une petite question un peu à part : J'ai pas crée de bdd sqlLite pour le moment mais je me demandais si c'était vraiment plus intéressant de faire des requêtes sur la bdd "interne" plutot que faire une requete sur un serveur externe. Sachant que de tte facon, il faudra une connexion internet pour l'application. J'ai lu que l'accès a une bdd interne pouvait être "lent" ?

  4. #4
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Citation Envoyé par ipsaous Voir le message
    Oki . Organiser le code va être plus compliqué que prévu . J'ai pas fini de me prendre la tête.
    Non. Pas forcément. Il faut juste comprendre que tout fonctionne avec des méthodes de callback. Lis ce tuto pour avoir les idées claires : http://olegoaer.developpez.com/tutos...e/android/rpc/

    Citation Envoyé par ipsaous Voir le message
    Tiens une petite question un peu à part : J'ai pas crée de bdd sqlLite pour le moment mais je me demandais si c'était vraiment plus intéressant de faire des requêtes sur la bdd "interne" plutot que faire une requete sur un serveur externe. Sachant que de tte facon, il faudra une connexion internet pour l'application. J'ai lu que l'accès a une bdd interne pouvait être "lent" ?
    Soit tes données sont sur le serveur, soit tes données sont sur le téléphone. C'est ca qui dicte le choix entre bdd interne ou externe.
    Et au contraire, l'accès à la bdd interne est plus performant qu'à une bdd externe.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Membre habitué
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juillet 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juillet 2015
    Messages : 12
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Non. Pas forcément. Il faut juste comprendre que tout fonctionne avec des méthodes de callback. Lis ce tuto pour avoir les idées claires : http://olegoaer.developpez.com/tutos...e/android/rpc/
    Ok. Merci pour le lien, je vais aller lire ça .


    Citation Envoyé par Hephaistos007 Voir le message
    Soit tes données sont sur le serveur, soit tes données sont sur le téléphone. C'est ca qui dicte le choix entre bdd interne ou externe.
    Et au contraire, l'accès à la bdd interne est plus performant qu'à une bdd externe.
    La les données sont sur une BDD "externe" mais je me posais la question de faire un INSERT dans une bdd interne lorsque je récupère les favoris d'un utilisateur par exemple.
    En gros, je récupère les favoris ( via une requete serveur ) lors du lancement de l'application qui se charge ensuite de les mettre dans la base SqlLite. Puis je me sers des données stockées en local dans le reste de l'appli ?

    Le hic serait quand même qu'il faudrait faire 2 requêtes si un utilisateur veut rajouter un favoris ensuite. C'était dans ce sens que j'me demandais ce que ça valait question performances et qu'elles étaient les meilleures solutions.

    Merci pour tes réponses !

Discussions similaires

  1. Organiser une classe pour gérer les images d'un site
    Par Renand dans le forum Performance Web
    Réponses: 5
    Dernier message: 02/09/2011, 11h38
  2. Coder une classe pour gérer les matrices
    Par TrexXx dans le forum Débuter
    Réponses: 2
    Dernier message: 11/02/2009, 13h22
  3. Réponses: 2
    Dernier message: 04/05/2007, 14h10
  4. Réponses: 4
    Dernier message: 20/08/2006, 16h20
  5. Réponses: 1
    Dernier message: 20/08/2006, 13h36

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