samedi 27 avril 2013

De Mysql à Android via PHP et JSON Part.2


Dans la première partie de ce tutoriel , nous avons appris à générer du JSON à partir de notre table en base.
A présent nous allons voir comment, sous Android :

1. Récupérer ces données (liste de livre), depuis le serveur.
2.Traiter ces données, à savoir les convertir dans un format compatible facile à manipuler, par exemple en créant des objets à partir du JSON.
3.Afficher ces données de façon conviviale à l'utilisateur par exemple dans une ListView.

Le projet complet de ce tutoriel peut être téléchargé ici.

Prérequis 

Notre projet Android va s'appeler BookDroid.
Je suppose que vous n'êtes pas totalement nouveau à Android et au Java , vous avez :

- Les bases de JavaSE
- Les bases d'Android
- Vous avez et savez utiliser Eclipse et les ADT (Android developer tools).
-Vous avez un environnement de développement Android qui marche.

Le projet Android

Pour faire simple, notre projet aura 1 seul  composants:
L'activité ListBookActivity  dans laquelle nous allons afficher la liste de tous les livres.


Architecture


A ce stade, vous avez besoin de penser à une architecture à mettre en place pour arriver au résultat, et ce avant d'écrire la moindre ligne de code.
La consommation des services web sous Android et l'interaction avec un serveur en général implique beaucoup de notions importantes sensées notamment aider à économiser la batterie et la consommation data, à utiliser le cache , à optimiser l'expérience utilisateur, etc..
Dans les prochains posts j'aborderai ces notions mais pour le moment nous allons nous contenter du plus simple possible.

Voici l'architecture la plus simple possible pour faire ce travail :

Architecture simpliste de consommation de service web sous android
1. Un événement coté UI , par exemple un click sur bouton menu, envoie une requête ASYNCHRONE (notamment via un AsyncTask)  au Provider (fournisseur). Dans notre cas, il s'agit d'une demande de la liste de livres se trouvant côté serveur.
2.Le Provider à son tour appelle le HttpClient en lui donnant les informations nécessaires à savoir l' URL à appeler pour l'obtension des données .

3. Une fois le HTTPClient exécuté, il renvoi des données sous format JSON.Pas de panique, comme on l'a vu c'est juste une chaîne de caractères.
 Il peut retourné autre chose, par exemple un Timeout ou autre erreur coté serveur, etc; mais nous allons être optimistes et supposer qu'il n'a retourné que du JSON.

4. Le résultat retourné par le HTTPClient est ensuite converti du JSON en Liste d'objets "Livre" puis retourné au provider.

5.  Le Provider à son tour renvoi la liste d’objets à la partie UI pour affichage.

Noter que cette architecture est la plus simpliste possible et ne tient pas compte de notions très importantes dont l'usage est inévitable dans toute application qui se veut sérieuse.
Nous essayons ici d'illustrer les notions élémentaires avant de passer aux plus avancées.

Implémentation

Dans la partie 3 nous allons voir comment implémenter facilement les différentes parties :)




Aucun commentaire:

Enregistrer un commentaire