Android : quelques librairies incontournables
Retrofit
1. Présentation
Retrofit est une librairie qui permet d’accéder simplement à des web services 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.
2. Procédure
Voici la procédure pour mettre en place Retrofit dans votre application :
-
Déclarer une permission pour accéder à Internet.
-
Ajouter les dépendances nécessaires pour utiliser Retrofit dans votre projet.
-
Créer des objets modèles stockant la réponse du web service.
-
Créer une interface de communication qui permettra de créer automatiquement les fonctions d’accès au web service.
-
Utiliser Retrofit.
3. Démonstration
Pour présenter la mise en place de Retrofit, nous allons exploiter le web service offert par ce site : https://api.chucknorris.io/
Pour présenter les différentes étapes de mise en place de Retrofit, un nouveau projet Android est créé dont l’activité principale se nomme MainActivity et est de type EmptyActivity.
4. Permission
Le but de Retrofit est d’accéder à des sites distants, il est donc nécessaire d’avoir une permission pour accéder à Internet.
AndroidManifeste.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="fr.acos.retrofitwithkotlin">
<!-- Permission d'accèder à Internet-->
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
...
Anko
1. Présentation
Le but de la librairie Anko est de rendre les développements Android plus rapides et plus simples. Elle a été réalisée par l’équipe de Kotlin. Son nom vient de la contraction d’Android et de Kotlin. Il est évidemment possible de s’en passer, mais les différentes parties d’Anko permettent aux développeurs d’améliorer leur code en tous points pour augmenter leur productivité et la qualité de leurs applications.
Les quatre parties de la librairie Anko sont :
-
Anko Commons : utilisation des Intents, boîtes de dialogues, toasts, logs et ressources,
-
Anko Layouts : création dynamique d’interfaces graphiques,
-
Anko SQLite : création et exploitation de bases de données,
-
Anko Coroutines : utilisation des tâches asynchrones (encore expérimental et non traité dans le livre).
2. Installation
Pour utiliser Anko, une dépendance est nécessaire dans le fichier build.gradle du module de l’application afin de télécharger les librairies requises.
Dans un premier temps, il faut ajouter une variable nommée anko_version dans le bloc buildscript du fichier build.gradle du projet, cette variable indique la version d’Anko :
buildscript {
ext.anko_version = '0.10.2'
Puis, pour télécharger la totalité de la librairie Anko, il faut ajouter la dépendance suivante dans le build.gradle du module :
dependencies {
implementation "org.jetbrains.anko:anko:$anko_version"
Pour utiliser uniquement des parties spécifiques d’Anko, il est possible d’utiliser des dépendances permettant de ne télécharger que ce qui est nécessaire.
Dépendances spécifiques
Anko Commons :
dependencies {
implementation
"org.jetbrains.anko:anko-commons:$anko_version"
Anko Layout :
dependencies {
implementation "org.jetbrains.anko:anko-sdk25:$anko_version"
implementation
"org.jetbrains.anko:anko-appcompat-v7:$anko_version"
Anko SQLite :
dependencies {
implementation "org.jetbrains.anko:anko-sqlite:$anko_version"
Anko...
Room
1. Présentation
Room est l’ORM officiel pour mettre en place une persistance de données dans une application Android. Cette librairie brille par son efficacité, sa simplicité et son système de mise en cache.
Voici les trois composantes principales de Room :
-
L’objet de type Database qui représente la base de données de l’application.
-
Les objets de type Entity qui représentent les enregistrements des tables de la base de données de l’application. En général, il existe une classe de type Entity par table.
-
Les objets de type DAO qui contiennent les fonctions permettant de manipuler les tables. En général, il existe une classe de type DAO par table.
2. Procédure
Voici la procédure pour mettre en place Room dans votre application :
-
Ajouter les dépendances nécessaires pour utiliser Room dans votre projet.
-
Définir les classes de type Entity. Concrètement, ce sont les classes du modèle avec des annotations.
-
Définir les DAO. Concrètement, ce sont des interfaces contenant des signatures de fonctions qui manipuleront la base de données de l’application. Le corps est généré par Room. Dans les DAO se trouvent des signatures de fonctions de sélection, insertion, mise à jour et suppression de données stockées en base de données.
-
Définir une classe de type Database. Cette classe permet de fournir des objets représentant la base de données de l’application.
Un objet de type Database permet d’accéder aux DAO. Les DAO permettent de fournir les objets de type Entity qui représentent les données de l’application.
3. Création de la base de données
C’est Room qui est responsable de la création de la base de données. Room s’appuie sur les annotations définies dans les classes de type Entity pour créer la base de données et les tables.
4. Dépendances
Voici les dépendances à ajouter pour pouvoir utiliser Room :
dependencies {
...
implementation "android.arch.persistence.room:runtime:1.1.0"
annotationProcessor "android.arch.persistence.room:compiler:1.1.0"
...
}