Communication entre Android et PHP/MySQL

Comment communiquer entre une app Android et une base de données distante MySQL

a marqué ce sujet comme résolu.

Tout le monde se secoue ! :D

J'ai commencé (mardi 16 février 2016 à 19h41) la rédaction d'un tutoriel au doux nom de « Communication entre Android et PHP/MySQL » et j'ai dans l'objectif de proposer en validation un texte aux petits oignons. Je fais donc appel à votre bonté sans limite pour dénicher le moindre pépin, que ce soit à propos du fond ou de la forme. Vous pourrez consulter la bêta à votre guise à l'adresse suivante :

Merci !

Salut,

j'ai donc, comme promis largement commencé ma relecture de ton tuto. Comme souvent, je vais passer par un framapad, comme on est sur un minituto, j'ai pris un bimestriel : https://bimestriel.framapad.org/p/php-android

Je te recommande de faire comme suit :

  • si tu corriges un truc, mets-lui juste le style "barré"
  • idem si tu refuses une de mes remarques pour quelque raison que ce soit
  • si tu as des questions, pose-le en dessous de la remarque, le pad les mettra automatiquement dans une autre couleur.

En tout cas ce genre de tuto sera bienvenu sur le site. D'autant qu'il est plutôt bon.

Salut,

J’ai survolé le tutoriel rapidement alors je ne peux pas faire de gros retours (d’autant que je ne connais pas trop le domaine), mais les liens dans les pré-requis de la section « Mise en place du serveur applicatif PHP » doivent être mis à jour (en ce moment, ce sont des liens du siteduzero).

+0 -0

Non, non ils ne le sont pas. On a ça par exemple.

Le chapitre Préparer son ordinateur du tutoriel Concevez votre site web avec PHP et MySQL de Mateo21 pour installer votre serveur PHP.

Seul le dernier lien mène à la page voulue, les deux autres mènent à cette page.

+0 -0

Pour java7, j'ai un peu de mal : certes tu te "prives" de 25% du marché, mais tu te permets un code plus fiable, plus lisible et bien plus proche des standard moderne. Java 1.7 comment a vieillir, aujourd'hui c'est 1.8 la norme, la 1.6 étant même abandonnée par oracle.

Zds est quand même là pour apprendre les choses aux débutants, leur montrer des mauvaises pratique, c'est pas sympa.

C'est très loin d'être une mauvaise pratique.

  1. Aujourd'hui, la bonne pratique est d'être compatible avec l'API 15 d'Android et Java 7 est compatible à partir de l'API 19. Même à la création d'un projet Android, Android Studio te met 15 par défaut.
  2. La réalité des choses aujourd'hui, c'est qu'il faut rester compatible avec Java 6 tant qu'il n'y a pas une aussi grande majorité d'utilisateur potentiel sur des systèmes non compatibles.
  3. Si tu dis à ton client : "Moi je veux utiliser Java 7 pour développer de manière plus cool, mais vous allez perdre 25% d'utilisateurs potentiels", il va refuser sans la moindre hésitation.

Il y a bien des solutions comme retrolambda mais c'est une bibliothèque qui ne rentre pas dans le cadre de ce tutoriel (très loin de là vu sa complexité).

Du coup, Java 6. :)

J'ai relu rapidement, je trouve le tuto sympa mais la partie "Qu'est-ce qu'une réponse en JSON ?", me parait pas clair pour un débutant.

Dans la partie "Les différentes structures", je trouve que ça manque d'exemples, tu donne l'image mais je trouve qu'elle est pas si claire que ça, surtout que tu l'explicite pas tant que ça. Personnellement, j'aurais ajouté un exemple pour chaque type de structure, juste une ligne pas plus. Pour avoir un peu de concret. Pourquoi pas préparer le lecteur au tp, en lui donnant justement des exemples de l'objet qu'il va devoir retourner ?

Pour le tp, j'aurais mis la réponse json du serveur avant la solution, déjà ça donne un moyen au lecteur de vérifier sa solution avant de comparer son code et celui de la solution. Deuxième avantage, ça donne un effet motivant de savoir à quoi on doit arriver et ça peut aider les lecteurs qui sont perdu.

Dans la partie, Facilitons-nous la vie avec des bibliothèques, y'a une phrase qui commence comme ça "La dépendance de toutes les bibliothèques", ça fait un peu bizarre, j'aurais mis le pluriel partout.

Dans la partie Retrofit, "@Get("list") pour informer Retrofit que la requête HTTP doit se faire eb en GET". Y'a un souci avec le markdown dans la phrase qui suit.

Dans le tuto, juste avant la fin, "disposez de la méthode onFailure(Call, Throwable) pour gérer les cas d'erreur pour vos requêtes vers votre serveur.". C'est pas complètement vrai, c'est pour gérer les erreurs de trafic réseau. Si ton api renvoi une 400, tu passera pas dans le onFailure mais dans le onResponse, c'est au développeur de faire un if (response.isSuccessful()) pour vérifier que ça renvoi bien un code HTTP entre 200 et 300.

Sinon encore une fois bravo !

PS: Retrofit et OkHttp sont censé être Java 1.7 uniquement.

PS 2: Le logo est … :euh: bizarre, on dirais que le droid à chasser l'éléphant et se sert du corps comme triomphe à sa gloire morbide.

+1 -0

Salut Hugo et un grand merci pour ce retour !

Dans la partie "Les différentes structures", je trouve que ça manque d'exemples, tu donne l'image mais je trouve qu'elle est pas si claire que ça, surtout que tu l'explicite pas tant que ça. Personnellement, j'aurais ajouté un exemple pour chaque type de structure, juste une ligne pas plus. Pour avoir un peu de concret. Pourquoi pas préparer le lecteur au tp, en lui donnant justement des exemples de l'objet qu'il va devoir retourner ?

C'est intéressant ce que tu dis mais j'ai une approche différente de la tienne. Je préfère enseigner les choses par des représentations standardisées plutôt que de noyer un lecteur sous des exemples qu'il pourra recopier sans comprendre. Cela dit, même si je ne vais pas donner un exemple pour chaque branche possible de la représentation, cela me parait intéressant de mettre en évidence une branche et d'en montrer sa mise en oeuvre concrète afin que le lecteur comprend comment utiliser le schéma.

Pour le tp, j'aurais mis la réponse json du serveur avant la solution, déjà ça donne un moyen au lecteur de vérifier sa solution avant de comparer son code et celui de la solution. Deuxième avantage, ça donne un effet motivant de savoir à quoi on doit arriver et ça peut aider les lecteurs qui sont perdu.

Bonne idée !

Dans la partie, Facilitons-nous la vie avec des bibliothèques, y'a une phrase qui commence comme ça "La dépendance de toutes les bibliothèques", ça fait un peu bizarre, j'aurais mis le pluriel partout.

Effectivement, il y a quelque chose à reformuler là.

Dans la partie Retrofit, "@Get("list") pour informer Retrofit que la requête HTTP doit se faire eb en GET". Y'a un souci avec le markdown dans la phrase qui suit.

C'est noté.

Dans le tuto, juste avant la fin, "disposez de la méthode onFailure(Call, Throwable) pour gérer les cas d'erreur pour vos requêtes vers votre serveur.". C'est pas complètement vrai, c'est pour gérer les erreurs de trafic réseau. Si ton api renvoi une 400, tu passera pas dans le onFailure mais dans le onResponse, c'est au développeur de faire un if (response.isSuccessful()) pour vérifier que ça renvoi bien un code HTTP entre 200 et 300.

Bien vu. Je modifie ça.

PS: Retrofit et OkHttp sont censé être Java 1.7 uniquement.

Tout à fait, Retrofit et OkHttp ont décidé de ne plus supporter Java 1.6 dans leur nouvelle version. Chose qui pose des problèmes à une partie de la communauté puisqu'ils ne peuvent pas mettre à jour leur dépendance à Retrofit et dès lors, bénéficier des correctifs.

Je reste persuadé que dans le cadre de ce tutoriel ci, ce n'est pas utile d'enseigner la façon de développer en Java 7.

PS 2: Le logo est … :euh: bizarre, on dirais que le droid à chasser l'éléphant et se sert du corps comme triomphe à sa gloire morbide.

Tu n'aimes pas mon icône ? :o Je le trouve trop bien ! ^^

Encore merci pour tous ces retours, nouvelle mise en bêta soon !

Encore quelques corrections et aprés je te laisse tranquille:

  • d'insérer quelques données factives factices (chapitre « Configuration de la table »)
  • Voyons un exemple concret avec le développement du serveur applicatif. => J'ajouterai un Voyons maintenant un exemple concret avec le développement du serveur applicatif. Je trouve que ça fait bizarre sans ce mot là ( chapitre « Développement du serveur applicatif »).
  • Préparation de la requête HTTP grâce au design pattern Builder. Ça mérite un lien vers une ressource pas sur que le lecteur sache ce que c'est.
  • Vous n'êtes pas obligé de vous soucier d'exécuter la requête dans un thread secondaire ou non, Retrofit le fait pour vous !
  • La conclusion, j'aurais rajouté un ou deux liens vers des ressources interne et/ou externe pour les concepts suivants:

    • J'avais pensé à ce tutoriel : restful ou même pourquoi pas au spec de l'api de zeste de savoir, après c'est peut-être un peu compliqué pour un débutant ou un autre truc sur les api REST.
+0 -0
Ce sujet est verrouillé.