N-PN White-Hat Project
[Android] Bonjour Madame (NSFW) - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72)
+--- Forum : Langages compilés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=25)
+--- Sujet : [Android] Bonjour Madame (NSFW) (/showthread.php?tid=3701)



[Android] Bonjour Madame (NSFW) - Dobry - 20-07-2014

Je me faisait sacrément chier ce week et puis de toute façon il fait trop chaud pour faire quoi que ce soit, j'ai donc bricollé une petite application pour android afin visualiser les images du site "http://www.bonjourmadame.fr/", c'était plus un entrainement qu'autre chose, mais on sait jamais, autant partager, voici un screenshot:
[Image: screenshot.png]
Même si l'application en elle même reste on ne peut plus basique, le code est un bon exemple de l'utilisation d'observer, en effet, Android permet grâce à ses AsyncTask de modifier l'UI directement dans la méthode onPostExecute, bien que très pratique, je trouve cela inaproprié, en effet, le thread ne devrait rien savoir de ce qu'il se passe à l'écran et encore moins avoir accès aux élements, le but est donc de notifier l'activité principale (MainActivity.java) afin qu'elle effectue les changements elle-même.
Je ne rentrerai pas dans les détails, mais pour implementer une telle action, il faut définir une interface (de préférence dans l'élément notifiant le changement) que nous implementons dans la classe qui doit recevoir le changement (MainActivity dans notre cas) et de passer cette MainActivity à la seconde classe, afin de pouvoir la notifier (cf TaskFragment.java et HttpParser.java).
Cependant dans cette application, il y a trois niveau d'observer:
Code BASH :
MainActivity -> TaskFragment -> HttpParser/FileDownloader
, en effet, comme il est très bien expliqué ici, nous devons créer un Fragment qui ne sera pas détruit lors du changement de configuration (rotation, récéption d'un appel) afin de ne pas déranger l'AsyncTask et de faire planter l'application), mais ce TaskFragment ne doit pas non plus modifer (on pourrait mais cela ne fait pas de sens) l'UI, il faut donc qu'il passe à son tour les évènements recu à l'interface (une fois de plus, HttpParser ne pourrait pas notifier MainActivity directement car elle peut être détruite à tout moment !
On retrouve également dans l'application (du moins je trouve) une bonne illustration de l'utilisation d'une classe Abstraite, HttpParser.java, qui facilite grandement l'ajout de différents site : BonjourMmeHttpParser, BonjourMlleHttpParser tiennent en quelque ligne et ne se chargent même pas de s'occuper du réseau.

Voilà, encore quelque chose d'inutile !
Le tout est bien sûr disponible en download : zip


RE: [Android] Bonjour Madame (NSFW) - thxer - 25-07-2014

Excellent Dorby ! merci pour le partage.
Toujours pas accroché android & java .. pourant j'ai essayé.