0% ont trouvé ce document utile (0 vote)
42 vues13 pages

Développement Mobile: CHAPITRE 2: Persistance Des Données Consommer Un Web Service REST Avec Retrofit

Transféré par

ahmed.omrani.1088
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
42 vues13 pages

Développement Mobile: CHAPITRE 2: Persistance Des Données Consommer Un Web Service REST Avec Retrofit

Transféré par

ahmed.omrani.1088
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

09/12/2022

Institut Supérieur des Etudes Technologiques de Béja

DÉVELOPPEMENT MOBILE
Enseignante: Mme. Haïfa Chorfi

CHAPITRE 2 : Persistance des données


Consommer un Web Service REST avec Retrofit
Niveau : SEM3

42 Mme. HAIFA CHORFI

42

Interaction avec une base de données distante via http, php, webservice…

43 Mme. HAIFA CHORFI

43

Mme Haifa Chorfi 1


09/12/2022

API : Application Programming Interface


 Une API est une interface d'un programme applicatif informatique.
 Elle permet d'offrir des services et des ressources d'un système déjà
existant.
 Ces ressources sont des données exposées selon certaines conditions
définies par le développeur.

44 Mme. HAIFA CHORFI

44

API : Application Programming Interface


 Les services sur Internet sont accessibles par des interfaces
 Il existe 2 grandes familles dans ce domaine :
 REST : Architecture orientée ressource, une API REST offre une
interface simple et uniforme. Elle est particulièrement bien adaptée au
web mais elle n'en est pas dépendante. Sa souplesse et sa mise en place
rapide est une très grande force par rapport à son concurrent direct.
 SOAP : Permet la transmission de messages entre des objets distants. Il
est alors possible à un objet d'appeler directement des méthodes sur un
serveur. Cependant, il est bâti sur l'XML et moins sur le JSON,
"nouveau" format de données particulièrement utilisé par REST.

45 Mme. HAIFA CHORFI

45

Mme Haifa Chorfi 2


09/12/2022

Exemple
 Une application android a souvent besoin d’une source de données
externe, par exemple un site web avec lequel elle va échanger des
données.
Exemple de l’application youtube, qui va interagir avec les serveurs de
google afin de récupérer une liste de vidéos.
 L’application n’accède pas directement aux données via des requêtes SQL
 Le serveur met à disposition une liste d’url par lesquels les applications
vont pouvoir accéder aux données. Le format des données échangées se
fait le plus souvent en JSON ou en XML.
 On dit alors que le serveur fournit un webservice, dans notre cas
une API REST.

46 Mme. HAIFA CHORFI

46

Librairies sous Android


 Sous Android, plusieurs bibliothèques réseau qui récupéraient et
envoyaient les données depuis/vers le serveur
 3 techniques principalement utilisées pour la mise en œuvre des API:
 AsyncTask: des tâches asynchrones intégrées pour extraire les
données des serveurs
 Volley : une bibliothèque à code source ouvert écrite par Google qui
prend en charge les threads d'arrière-plan simultanés, la mise en cache
réseau, ainsi que d'autres fonctionnalités permettant de nettoyer le
code réseau de manière substantielle.
 Retrofit : une bibliothèque à code source ouvert écrite par Square de
même que Volley

47 Mme. HAIFA CHORFI

47

Mme Haifa Chorfi 3


09/12/2022

Tests de performance Android Async vs Volley vs Retrofit


 Comparer avecVolley et AsyncTask, Retrofit offrant une réponse très
rapide à la demande.

48 Mme. HAIFA CHORFI

48

Retrofit
 La plupart des applications mobiles consomment des API REST JSON
pour récupérer toutes les données nécessaires à leur fonctionnement

 Retrofit est extrêmement simple à utiliser. Il vous permet essentiellement


de traiter les appels d'API comme de simples appels de méthode Java,
de sorte que vous ne définissez que les URL à atteindre et les types de
paramètres de demande / réponse en tant que classes Java.

49 Mme. HAIFA CHORFI

49

Mme Haifa Chorfi 4


09/12/2022

Retrofit
 Retrofit est une librairie qui permet d’accéder simplement à des services
Web basé sur REST et plus particulièrement dans le cadre d’API JSON.
 Elle permet de gérer l’envoi des requêtes et la réception des réponses
jusqu’à leur conversion sous forme d’objets.
 L'ensemble de l'appel réseau + l'analyse JSON / XML est entièrement
géré par Retrofit avec l'aide de Gson pour l'analyse JSON, ainsi que la
prise en charge des formats arbitraires avec sérialisation.
 Elle permet de faire des requêtes HTTP, s’occupe tout seul de convertir
vos JSON dans des objets Java et vous propose une architecture adaptée
pour réagir en conséquence aux codes HTTP.

50 Mme. HAIFA CHORFI

50

JSON

 JSON (JavaScript Object Notation) est un format de données qui permet


de représenter de l’information structurée sous forme de texte. Sa
représentation est plus légère que le format XML.
 Exemple :Format JSON :
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}

51 Mme. HAIFA CHORFI

51

Mme Haifa Chorfi 5


09/12/2022

JSON
 À titre de comparaison, le même exemple en XML :
<menu id="file" value="File">
<popup>
<menuitem value="New" onclick="CreateNewDoc()" />
<menuitem value="Open" onclick="OpenDoc()" />
<menuitem value="Close" onclick="CloseDoc()" />
</popup>
</menu>

52 Mme. HAIFA CHORFI

52

GSON
 Gson est une bibliothèque Java qui peut être utilisée pour convertir des
objets Java en leur représentation JSON. Il peut également être utilisé
pour convertir une chaîne JSON en un objet Java équivalent.

53 Mme. HAIFA CHORFI

53

Mme Haifa Chorfi 6


09/12/2022

Retrofit
 Pour travailler avec Retrofit, vous avez besoin de trois classes:
 Classe de modèle utilisée pour mapper les données JSON.
 Classe [Link] - Instance Retrofit d’une ou plusieurs interfaces
pour exécuter des requêtes vers votre serveur et d’une instance vers
cette interface.
 Interfaces qui définissent les opérations HTTP possibles

54 Mme. HAIFA CHORFI

54

Retrofit
 Classe de modèle : afin de sérialiser/désérialiser les requêtes/réponses
et de stocker nos données.
 Chaque champ de chaque modèle doit être identique à la réponse (nom
et type) afin que la désérialisation de cette dernière fonctionne.

55 Mme. HAIFA CHORFI

55

Mme Haifa Chorfi 7


09/12/2022

Retrofit
 Classe [Link] - instance de d’une ou plusieurs interfaces Java
pour exécuter des requêtes vers votre serveur et d’une instance vers
cette interface.

56 Mme. HAIFA CHORFI

56

Retrofit
 Interfaces qui définissent les opérations HTTP possibles:
 Chaque méthode d'une interface représente un appel API possible. Il doit
avoir une annotation HTTP ( GET, POST, etc.) pour spécifier le type de
requête et l'URL relative.
 La valeur de retour enveloppe la réponse dans un Call objet avec le type
du résultat attendu.

57 Mme. HAIFA CHORFI

57

Mme Haifa Chorfi 8


09/12/2022

Retrofit
 Chaque méthode d'une interface représente un appel API possible.
 Il doit avoir une annotation HTTP ( GET, POST, etc.) pour spécifier le
type de demande et l'URL relative.
 La valeur de retour encapsule la réponse dans un objet Call avec le type
du résultat attendu
 Les méthodes suivantes sont disponibles : @GET, @POST, @PUT,
@DELETE, @PATCH

58 Mme. HAIFA CHORFI

58

Retrofit

59 Mme. HAIFA CHORFI

59

Mme Haifa Chorfi 9


09/12/2022

Étapes à suivre pour intégrer Retrofit


1. Ajouter les dépendances nécessaires pour utiliser Retrofit dans Gradle:
[Link]:(Module)

2. Déclarer une permission pour accéder à Internet : définir une autorisation


Internet dans notre fichier Manifest.

[Link]

60 Mme. HAIFA CHORFI

60

Étapes à suivre pour intégrer Retrofit


3. Créer une classe de modèle
Java\...\[Link]

61 Mme. HAIFA CHORFI

61

Mme Haifa Chorfi 10


09/12/2022

Étapes à suivre pour intégrer Retrofit


4. Créer l'instance Retrofit pour envoyer les requêtes réseau
Java\...\[Link]

62 Mme. HAIFA CHORFI

62

Étapes à suivre pour intégrer Retrofit


5. Configuration de l'interface de Retrofit avec une méthode
 Cette méthode est annotée par @Get(« [Link]") pour informer
Retrofit que la requête HTTP doit se faire en GET et que l’URL se termine
par " [Link]".
 La méthode doit retourner Call<List<Smartphone>>.
 Call est une interface de Retrofit qui permet d’exécuter en synchrone ou
asynchrone la requête et le type générique à l’intérieur informe Retrofit du
type de retour souhaité. Java\...\[Link]

63 Mme. HAIFA CHORFI

63

Mme Haifa Chorfi 11


09/12/2022

Étapes à suivre pour intégrer Retrofit


6. Consommer le service Web REST
Java\...\[Link]

64 Mme. HAIFA CHORFI

64

Étapes à suivre pour intégrer Retrofit


7. Définir les données de réponse de retrofit dans Recyclerview

65 Mme. HAIFA CHORFI

65

Mme Haifa Chorfi 12


09/12/2022

Étapes à suivre pour intégrer Retrofit


7. Définir les données de réponse de retrofit dans Recyclerview

Java\...\[Link]

66 Mme. HAIFA CHORFI

66

Mme Haifa Chorfi 13

Vous aimerez peut-être aussi