Chucker para Kotlin: guía completa con ejemplos prácticos
1. ¿Qué es y para qué sirve?
Chucker es una potente librería para depurar peticiones HTTP en aplicaciones Android, escrita en Kotlin. Permite a los desarrolladores interceptar, registrar e inspeccionar todo el tráfico de red que pasa a través del cliente OkHttp, directamente en el dispositivo. A diferencia del registro estándar en Logcat, Chucker ofrece una interfaz gráfica intuitiva en forma de pantalla independiente (Activity), donde se pueden ver encabezados, cuerpos de solicitudes y respuestas, códigos de estado, tiempos de ejecución y tamaños de datos.
El objetivo principal de Chucker es simplificar el proceso de depuración de la comunicación en red. En lugar de conectar el dispositivo al ordenador y filtrar registros, el desarrollador puede abrir la aplicación y ver inmediatamente todas las transacciones HTTP. Esto es especialmente útil al probar en dispositivos reales cuando el acceso a ADB es limitado, o al trabajar con equipos de control de calidad que pueden proporcionar capturas de pantalla de errores con información detallada sobre la solicitud.
Chucker también admite filtrado por tipo de contenido (JSON, XML, imágenes), búsqueda por URL, visualización de errores y excepciones, así como exportación de registros a un archivo. La librería recopila automáticamente información sobre errores SSL, tiempos de espera y otros problemas de red, lo que la convierte en una herramienta indispensable para cualquier desarrollador Android que trabaje con APIs REST.
2. Instalación
Chucker se distribuye a través de Maven Central. Para instalarlo, debes agregar las dependencias en el archivo build.gradle.kts (o build.gradle) de tu módulo de aplicación.
Importante: La librería no está diseñada para instalarse mediante pip, npm o cargo. Es una librería de Android que se integra a través del sistema de compilación Gradle.
Comando para agregar en build.gradle.kts (Module: app):
// build.gradle.kts (Module: app)
dependencies {
// Librería principal de Chucker (solo para compilaciones debug)
debugImplementation("com.github.chuckerteam.chucker:library:4.0.0")
// Librería No-Op (vacía) para compilaciones release
releaseImplementation("com.github.chuckerteam.chucker:library-no-op:4.0.0")
}
Para 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'
}
Explicación: Usar debugImplementation garantiza que Chucker solo esté disponible en compilaciones de depuración. releaseImplementation con la versión library-no-op reemplaza todas las llamadas a Chucker con funciones vacías, lo que evita fugas de datos en producción y no aumenta el tamaño del APK.
3. Inicio rápido — ejemplo mínimo funcional
Después de instalar la librería, debes crear un OkHttpClient y agregarle el interceptor de Chucker. Luego, este cliente se usa para crear Retrofit o cualquier otro cliente 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. Crear el colector para almacenar los registros
val collector = ChuckerCollector(this)
// 2. Crear el interceptor
val chuckerInterceptor = ChuckerInterceptor.Builder(this) También en la biblioteca
migrate en Go: guía completa con ejemplos prácticos
Generación de PDF en JavaScript (Node.js): bibliotecas y herramientas
candle para Rust: guía completa con ejemplos prácticos
Serialización de objetos en Node.js: JSON, Buffer y Protobuf
Monitoreo de aplicaciones Swift: bibliotecas y herramientas para iOS/macOS