Accompanist para Kotlin: guía completa con ejemplos prácticos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Accompanist para Kotlin: guía completa con ejemplos prácticos

1. ¿Qué es Accompanist y para qué sirve?

Accompanist es una colección de bibliotecas complementarias (extensions) para Jetpack Compose, desarrollada por el equipo de Google. Proporciona soluciones listas para usar en tareas que aún no forman parte de la API estable de Compose o que requieren una implementación compleja desde cero. La biblioteca resuelve problemas comunes que enfrenta todo desarrollador de Compose: manejo de gestos, barras del sistema, animaciones, vistas web, adaptación a diferentes pantallas y mucho más.

¿Para qué sirve? En primer lugar, Accompanist ahorra tiempo. En lugar de escribir tu propio manejador de gestos o un modificador personalizado para las barras del sistema, usas un componente ya probado y listo. En segundo lugar, la biblioteca sigue las recomendaciones oficiales de Google y, a menudo, sirve como prototipo para futuras APIs estables de Compose. Por ejemplo, HorizontalPager de Accompanist se agregó posteriormente a Compose Foundation como HorizontalPager.

Al momento de escribir este artículo, Accompanist incluye módulos como: systemuicontroller (control de la barra de estado y navegación), permissions (solicitud de permisos en tiempo de ejecución), webview (integración de WebView), pager (desplazamiento horizontal/vertical de páginas), swiperefresh (gesto pull-to-refresh), placeholder (carga con esqueleto), adaptive (layouts adaptables), navigation-animation (animaciones de transición) y otros.

2. Instalación

Accompanist es una biblioteca para Gradle (Android/Kotlin Multiplatform). La instalación se realiza agregando dependencias en el archivo build.gradle.kts (o build.gradle) de tu módulo. No se usan comandos como pip, npm, cargo o go get, ya que no es Python, JavaScript, Rust ni Go.

El comando exacto para agregar un módulo específico (por ejemplo, systemuicontroller):

// build.gradle.kts (Module)
dependencies {
    implementation("com.google.accompanist:accompanist-systemuicontroller:0.34.0")
    // Para otros módulos:
    // implementation("com.google.accompanist:accompanist-permissions:0.34.0")
    // implementation("com.google.accompanist:accompanist-pager:0.34.0")
    // implementation("com.google.accompanist:accompanist-swiperefresh:0.34.0")
    // implementation("com.google.accompanist:accompanist-webview:0.34.0")
    // implementation("com.google.accompanist:accompanist-placeholder:0.34.0")
}

Importante: verifica la versión actualizada en GitHub Releases. La versión 0.34.0 es la última estable al momento de escribir este artículo. Asegúrate de que tu versión de Kotlin y Compose sean compatibles con la versión de Accompanist que elijas.

3. Inicio rápido — ejemplo mínimo funcional

Vamos a crear una pantalla que cambie el color de la barra de estado al presionar un botón. Para esto, usaremos el módulo systemuicontroller.

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import com.google.accompanist.systemuicontroller.rememberSystemUiController

@Composable
fun QuickStartExample() {
    val systemUiController = rememberSystemUiController()
    var isDark by remember { mutableStateOf(false) }

    // Establecemos el color de la barra de estado según el estado
    LaunchedEffect(isDark) {
        if (isDark) {
            systemUiController.setStatusBarColor                    

Recommendations