Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

Découvrir le développement d'applications avec Android 5

Découvrir la librairie Volley

Testez gratuitement nos 1336 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
La librairie Volley est une librairie pseudo-officielle qui simplifie et optimise les chargements réseaux. Voyez ici comment l'utiliser.
07:42

Transcription

L'une des tâches asynchrones les plus fréquentes que vous aurez à faire sur mobile, c'est de télécharger des données. Pour télécharger des données, il faut bien sûr ne pas le faire sur le thread principal pour ne pas bloquer l'interface graphique (c'est une des tâches les plus longues que vous ayez à faire). Mais, on n'est pas obligé d'utiliser une Async Task, il existe des outils spécialisés dans le téléchargement de données qui sont beaucoup plus simples à utiliser et, en plus, beaucoup plus stables que l'Async Task, notamment par rapport à ce que je vous disais tout à l'heure, qui consistait à garder le contexte quand on passe d'une activité à une autre. Donc, parmi ces outils, nous allons voir le premier, qui est Volley. Volley, c'est une librairie plus ou moins officielle. Je dis plus ou moins parce qu'elle est développée par Google, ils en parlent sur le site d'Androïd, mais c'est fourni sous la forme d'une librairie externe. C'est-à-dire que c'est pas intégré directement au SDK, il y a un guide sur le site du SDK mais pour l'installer il faut aller télécharger les sources, créer un JAR soi-même, donc un fichier librairie, l'intégrer à son projet ou alors vous pouvez carrément prendre les sources, comme ils vous recommandent, et les mettre directement dans votre projet comme si cétait vos sources à vous. Mais dans tous les cas, c'est l'équipe d'Androïd qui le développe mais ils ne l'ont pas intégré de façon native. Alors ça complique un petit peu l'installation, c'est pour cette raison que ce que j'ai fait, j'ai préparé pour vous le JAR, ainsi qu'un fichier source, que vous allez ajouter dans votre projet, pour que ce soit beaucoup plus simple de démarrer. On va voir ça ensemble. Dans les fichiers joints à la formation, vous avez volley.jar et VolleyDownloader.java Ce sont deux fichiers qu'on va ajouter dans le projet. Dans votre dossier projet, vous allez ouvrir le sous-dossier app, puis le sous-dossier libs et faire glisser volley.jar à l'intérieur. Ça, ça permet d'intégrer toutes les sources de Volley, la librairie, à votre projet à vous, sous la forme d'une librairie externe. En plus de ça, on va accéder directement dans le dossier source, naviguer jusqu'à l'intérieur de notre projet, donc, main... java... com.. exemple... maximebritto... adressbook... Alors vous, ce sera peut-être pas le même nom, mais c'est le même principe. Je vais le mettre dans data, juste à côté du CacheChecker qu'on a fait à la vidéo précédente. Je vais mettre mon VolleyDownloader. Maintenant, je vais retourner dans mon projet. Actualiser Gradle, donc il faut cliquer sur ce bouton-là, pour qu'il charge au minimum le JAR. Il avait déjà détecté le VolleyDownloader mais pour le JAR, il faut cliquer sur ce bouton, pour qu'il recharge tout ce qu'il peut trouver comme librairie. Donc ça prend un certain temps. Il peut vous afficher des erreurs en attendant d'avoir terminé mais, normalement, ça devrait marcher. Voilà... Là, il a terminé, je n'ai pas eu de problème particulier donc je vais pouvoir utiliser Volley. Pour utiliser Volley, c'est très simple. On doit d'abord créer une requête qui explique ce qu'on veut et ce qu'on va faire du résultat. Et une fois que vous aurez créé cette requête, vous la transmettez à Volley. Volley a une file d'attente requêtes. Et vous lui transmettez toutes les requêtes que vous voulez et il va essayer de gérer un certain nombre de threads en tâches de fond, pour exécuter ces requêtes, et vous retourner les résultats directement sur le thread principal. Prenons l'exemple le plus simple, un StringRequest, c'est une requête permettant de charger du texte depuis Internet. Je vais l'appeler Request, est égal à new... string...request. Je dois lui passer l'URL du site web que je veux charger ou du web service, peu importe ce que vous avez besoin de charger, moi je vais juste charger la page web de Google. ...google.fr... Et ensuite, il reçoit deux paramètres supplémentaires. En gros, il va vous demander un listener, pour le code à exécuter en cas de succès et un listener pour le code à exécuter en cas d'erreur. Donc... new... Control espace... listener voyez, il me propose automatiquement Entrée...Donc, là en cas de succès... Moi je vais dire : log... point... i ... Volley... ... virgule... ... Success... deux points... et je vais concaténer le texte qu'il m'a retourné depuis le web. Normalement, ça va me mettre le code source de Google. Alors il y a encore du rouge, parce qu'il attend un second paramètre, ... new... ... error listener... et là ce sera le même principe, donc log... ... point E, cette fois-ci, pour Erreur. Toujours le tag Volley... ... error... Et là, on va voir affichée l'erreur tout simplement. Volley, error... et il me passe en paramètre un objet qui décrit plus ou moins l'erreur. Donc là, j'ai créé ma requête. Je l'ai pas encore programmée, c'est-à-dire que j'ai décrit ce que je voulais qu'il fasse, au départ et à l'arrivée. Une fois que c'est fait, il lui suffit de le transmettre à Volley. C'est là que le fichier Java qu'on a ajouté tout à l'heure va être utile. C'est le volleydownloader... point, getInstance ... Alors c'est le principe du Singleton, c'est des choses que vous pouvez voir sur des cours de programmation orientés objet. La première fois que l'on va appeler le getInstance, il va créer ce VolleyDownloader, et lui affecter des données, et les fois suivantes, il vous retournera le premier qu'il a créé, la première fois qu'il l'a créé. Donc, ici ce qu'on va lui passer, ce sera le contexte d'applications. getApplicationContext C'est similaire au contexte qu'on avait vu pour les activités ou les services, sauf qu'il est tout le temps disponible, du début à la fin de votre application. Donc on l'a depuis n'importe quelle activité, on a accès à ce ApplicationContext, et ça permet d'avoir quelque chose qui reste. Même si l'activité dans laquelle vous l'avez demandé est supprimée, le Application Context restera toujours disponible. C'est important puisque ce Volley Downloader va être utilisé à travers toutes les activités de votre projet. Une fois qu'on a l'instance, il y a une méthode qui a été ajoutée, c'est addToRequestQueue. Et là, vous lui passez directement la requête qu'on vient de créer... ... Request... Voilà, on va lancer ça pour vérifier que ça marche. Donc, au lancement de notre activité, il va créer la requête avec l'URL, indiquer ce qu'il doit faire en cas de succès, et indiquer ce qu'il doit faire en cas d'erreur, sachant que ces deux call back là, se font sur le thread principal. Volley, error... Java security exception... Alors effectivement, c'est intéressant que l'on tombe là-dessus. Là, ce qui se passe, c'est que mon application n'a pas le droit d'accéder à Internet. On n'a jamais demandé à l'OS d'avoir accès à Internet. Alors c'est pour ça, j'ai Androïd Manifest qui est déjà ouvert, on va pouvoir l'ajouter. Dès que vous avez besoin d'accéder à quelque chose, à du matériel spécifique ou à des données personnelles de l'utilisateur ou autre, il faut avoir demandé la permission à l'utilisateur. Pour le faire, il suffit dans le Manifest, d'ajouter uses permission et là, il me propose android.permission.INTERNET S'il vous le propose pas, vous cherchez un petit peu dans la liste de toutes les permissions... et vous enregistrez. Ça va permettre notamment au système, déjà de vérifier qu'on a bien la permission d'y accéder, et surtout , ça vous montrera sur le Play Store, au moment de télécharger votre application l'utilisateur aura une pop-up, qui apparaitra en disant : cette application aura le droit d'accéder à Internet, si vous acceptez de l'installer. L'utilisateur peut donc refuser et ne pas télécharger votre application. On va relancer. Voilà, et là ça a marché. Voilà donc, on a toujours la tâche asynchrone de tout à l'heure mais on voit qu'il a réussi à télécharger les données de Volley et veut les retourner sur le thread principal. Donc, c'est un framework un petit peu compliqué à installer au départ mais, bon, avec le JAR etc... une fois qu'on l'a, ça marche très très bien, c'est très simple à utiliser et pour des téléchargements basiques, c'est vraiment ce qu'on fait de mieux. On va voir maintenant quelque chose d'encore mieux, si vous avez un web service en rest, pour avoir quelque chose d'encore plus standardisé et le téléchargement et la création de vos objets.

Découvrir le développement d'applications avec Android 5

Développez des applications mobiles pour Android. Créez un projet de A à Z sous Android Studio, de l’installation du kit de développement, jusqu’à sa publication sur le Play Store.

3h17 (39 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Android Android 5
Spécial abonnés
Date de parution :17 mars 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !