Chucker pour Kotlin : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Chucker pour Kotlin : guide complet avec exemples

1. Qu'est-ce que Chucker et pourquoi l'utiliser ?

Chucker est une bibliothèque puissante pour le débogage des requêtes HTTP dans les applications Android, écrite en Kotlin. Elle permet aux développeurs d'intercepter, de journaliser et d'inspecter tout le trafic réseau passant par le client OkHttp, directement sur l'appareil. Contrairement à la journalisation standard dans Logcat, Chucker offre une interface graphique pratique sous la forme d'un écran dédié (Activity), où vous pouvez visualiser les en-têtes, les corps des requêtes et des réponses, les codes de statut, les temps d'exécution et la taille des données.

L'objectif principal de Chucker est de simplifier le processus de débogage des interactions réseau. Au lieu de connecter l'appareil à un ordinateur et de filtrer les logs, le développeur peut ouvrir l'application et voir immédiatement toutes les transactions HTTP. C'est particulièrement utile lors des tests sur des appareils réels, lorsque l'accès à ADB est limité, ou lorsque vous travaillez avec des équipes QA qui peuvent fournir elles-mêmes des captures d'écran d'erreurs avec des informations détaillées sur la requête.

Chucker prend également en charge le filtrage par type de contenu (JSON, XML, images), la recherche par URL, l'affichage des erreurs et exceptions, ainsi que l'exportation des logs vers un fichier. La bibliothèque collecte automatiquement les informations sur les erreurs SSL, les timeouts et autres problèmes réseau, ce qui en fait un outil indispensable pour tout développeur Android travaillant avec des API REST.

2. Installation

Chucker est distribué via Maven Central. Pour l'installer, vous devez ajouter les dépendances dans le fichier build.gradle.kts (ou build.gradle) de votre module d'application.

Important : La bibliothèque n'est pas destinée à être installée via pip, npm ou cargo. C'est une bibliothèque Android qui se connecte via le système de build Gradle.

Commande à ajouter dans build.gradle.kts (Module: app) :

// build.gradle.kts (Module: app)
dependencies {
    // Bibliothèque principale Chucker (uniquement pour les builds debug)
    debugImplementation("com.github.chuckerteam.chucker:library:4.0.0")

    // Bibliothèque No-Op (factice) pour les builds release
    releaseImplementation("com.github.chuckerteam.chucker:library-no-op:4.0.0")
}

Pour Groovy (build.gradle) :

// build.gradle (Module: app)
dependencies {
    debugImplementation 'com.github.chuckerteam.chucker:library:4.0.0'
    releaseImplementation 'com.github.chuckerteam.chucker:library-no-op:4.0.0'
}

Explication : L'utilisation de debugImplementation garantit que Chucker ne sera disponible que dans les builds de débogage. releaseImplementation avec la version library-no-op remplace tous les appels à Chucker par des fonctions vides, ce qui évite les fuites de données en production et n'augmente pas la taille de l'APK.

3. Démarrage rapide — exemple minimal fonctionnel

Après l'installation de la bibliothèque, vous devez créer un OkHttpClient et y ajouter l'intercepteur Chucker. Ensuite, ce client est utilisé pour créer Retrofit ou tout autre client HTTP.

// MainActivity.kt
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.chuckerteam.chucker.api.ChuckerCollector
import com.chuckerteam.chucker.api.ChuckerInterceptor
import okhttp3.OkHttpClient
import okhttp3.Request

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // 1. Créer un collecteur pour stocker les logs
        val collector = ChuckerCollector(this)

        // 2. Créer l'intercepteur
        val chuckerInterceptor = ChuckerInterceptor.Builder(this)                    

Recommendations